diff --git a/fda-container-service/pom.xml b/fda-container-service/pom.xml
index 77e5f15697b13ce658865327c53bc0a79a8e69b4..20746acbbd3f99c65fe7173a8e9b46b21e00c0d5 100644
--- a/fda-container-service/pom.xml
+++ b/fda-container-service/pom.xml
@@ -56,6 +56,10 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-elasticsearch</artifactId>
+        </dependency>
         <!-- Entity and API -->
         <dependency>
             <groupId>at.tuwien</groupId>
diff --git a/fda-container-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java b/fda-container-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java
index b00ea3d5c41cede395978ca06bc92c224c946cef..e8d21c944edaef7fa5bc0d863b708e344b05ebdc 100644
--- a/fda-container-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java
+++ b/fda-container-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java
@@ -3,6 +3,7 @@ package at.tuwien;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
 import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import springfox.documentation.oas.annotations.EnableOpenApi;
@@ -10,7 +11,8 @@ import springfox.documentation.oas.annotations.EnableOpenApi;
 @SpringBootApplication
 @EnableJpaAuditing
 @EnableOpenApi
-@EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
+@EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"})
+@EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
 @EntityScan(basePackages = {"at.tuwien.entities"})
 public class FdaContainerManagingApplication {
 
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointUnitTest.java
index ca0f6369071ace05498bbe0b5b6162a23bd54909..e88cec86ea76d613d599ce87217ab8a00c2b4ed2 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointUnitTest.java
@@ -4,7 +4,7 @@ import at.tuwien.BaseUnitTest;
 import at.tuwien.api.container.*;
 import at.tuwien.endpoints.ContainerEndpoint;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import at.tuwien.service.ContainerService;
 import com.github.dockerjava.api.DockerClient;
 import org.junit.jupiter.api.Disabled;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
index f72b9fe08db170f47a42af986748f94ff9bc7a40..b2cf4843528035779830833f1d5ab87daf9a8b6a 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
@@ -1,20 +1,13 @@
 package at.tuwien.endpoint;
 
 import at.tuwien.BaseUnitTest;
-import at.tuwien.api.container.*;
 import at.tuwien.api.container.image.ImageBriefDto;
 import at.tuwien.api.container.image.ImageChangeDto;
 import at.tuwien.api.container.image.ImageCreateDto;
 import at.tuwien.api.container.image.ImageDto;
-import at.tuwien.endpoints.ContainerEndpoint;
 import at.tuwien.endpoints.ImageEndpoint;
-import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.service.ContainerService;
 import at.tuwien.service.ImageService;
-import com.github.dockerjava.api.DockerClient;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,11 +17,8 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
-import javax.persistence.EntityNotFoundException;
-import java.awt.*;
 import java.util.List;
 import java.util.Objects;
-import java.util.Optional;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
index adc106870a32e63d254bc76c93f9174ac257497b..162371f14ba761f98dfd4d2f0c022b17e2f253aa 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
@@ -5,8 +5,8 @@ import at.tuwien.api.container.ContainerCreateRequestDto;
 import at.tuwien.api.container.ContainerStateDto;
 import at.tuwien.entities.container.Container;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.exception.NotModifiedException;
@@ -22,7 +22,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import org.springframework.transaction.annotation.Transactional;
 import java.util.Arrays;
-import java.util.List;
 import java.util.Map;
 
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
index 325837a3a884bf47d0d9b71cfe5ca6f9a397d823..094b9f842ea4f326a6b7298888e0f5dec9b26cb1 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
@@ -7,8 +7,8 @@ import at.tuwien.exception.ContainerNotFoundException;
 import at.tuwien.exception.ContainerStillRunningException;
 import at.tuwien.exception.DockerClientException;
 import at.tuwien.exception.ImageNotFoundException;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.exception.ConflictException;
 import com.github.dockerjava.api.exception.NotFoundException;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
index 0475a834bca22ec629d17af4849b403a6975a687..6eabfe4db10277e1f3438c457b1a7ae4994c0eb0 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
@@ -3,8 +3,8 @@ package at.tuwien.service;
 import at.tuwien.BaseUnitTest;
 import at.tuwien.api.container.image.ImageCreateDto;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
index c018a89a185f6f3933f8a93f29a415985bfb65ba..5e7a1c67de4d95ea503305187c2b198fb09f474b 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
@@ -1,20 +1,12 @@
 package at.tuwien.service;
 
 import at.tuwien.BaseUnitTest;
-import at.tuwien.api.container.ContainerCreateRequestDto;
 import at.tuwien.api.container.image.ImageChangeDto;
 import at.tuwien.api.container.image.ImageCreateDto;
 import at.tuwien.api.container.image.ImageEnvItemDto;
-import at.tuwien.entities.container.Container;
 import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
-import com.github.dockerjava.api.DockerClient;
-import com.github.dockerjava.api.exception.ConflictException;
-import com.github.dockerjava.api.exception.NotFoundException;
-import com.github.dockerjava.api.exception.NotModifiedException;
-import org.junit.jupiter.api.Disabled;
+import at.tuwien.repository.jpa.ImageRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/fda-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java b/fda-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa60a6dbbcdd124de8a38c4098ee43c7115df16f
--- /dev/null
+++ b/fda-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
@@ -0,0 +1,9 @@
+package at.tuwien.repository.elastic;
+
+import at.tuwien.entities.database.Database;
+import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository(value = "ElasticDatabaseService")
+public interface DatabaseRepository extends ElasticsearchRepository<Database, Long> {
+}
\ No newline at end of file
diff --git a/fda-container-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java b/fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
similarity index 93%
rename from fda-container-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java
rename to fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
index ecb94fbb56e547ea156d42fa0b7e5b04d7a8cf06..7220b72a360ef4ca166b94e0d6f57091476cd754 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.container.Container;
 import at.tuwien.entities.container.image.ContainerImage;
diff --git a/fda-container-service/services/src/main/java/at/tuwien/repository/ImageRepository.java b/fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
similarity index 91%
rename from fda-container-service/services/src/main/java/at/tuwien/repository/ImageRepository.java
rename to fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
index 7094708e797007f46b4a368267684c9c888caad4..ca60fb1a740ae2047029d977b8ed96acae270c83 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/repository/ImageRepository.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.container.image.ContainerImage;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-container-service/services/src/main/java/at/tuwien/service/ContainerService.java b/fda-container-service/services/src/main/java/at/tuwien/service/ContainerService.java
index 4468a293af7f600692d71ea61b2d3dce5caf92ee..86567866a3e02770a0f49509b56fa63688edcbd9 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/service/ContainerService.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/service/ContainerService.java
@@ -9,8 +9,8 @@ import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.*;
 import at.tuwien.mapper.ContainerMapper;
 import at.tuwien.mapper.ImageMapper;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.command.InspectContainerResponse;
@@ -27,8 +27,6 @@ import org.springframework.util.SocketUtils;
 
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.IOException;
-import java.net.*;
 import java.time.Instant;
 import java.util.HashMap;
 import java.util.List;
diff --git a/fda-container-service/services/src/main/java/at/tuwien/service/ImageService.java b/fda-container-service/services/src/main/java/at/tuwien/service/ImageService.java
index 6bbf84dc4d5301a1a350828b7282fbed6f5a7fab..0f1aca16858751ba5e5c53976e62c8e572f4deb8 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/service/ImageService.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/service/ImageService.java
@@ -2,15 +2,14 @@ package at.tuwien.service;
 
 import at.tuwien.api.container.image.ImageChangeDto;
 import at.tuwien.api.container.image.ImageCreateDto;
-import at.tuwien.entities.container.Container;
 import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.DockerClientException;
 import at.tuwien.exception.ImageAlreadyExistsException;
 import at.tuwien.exception.ImageNotFoundException;
 import at.tuwien.exception.PersistenceException;
 import at.tuwien.mapper.ImageMapper;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.async.ResultCallback;
 import com.github.dockerjava.api.command.InspectImageResponse;
@@ -25,7 +24,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.persistence.EntityNotFoundException;
-import javax.persistence.Persistence;
 import javax.validation.ConstraintViolationException;
 import java.time.Duration;
 import java.time.Instant;
diff --git a/fda-database-service/services/src/main/java/at/tuwien/entities/Database.java b/fda-database-service/services/src/main/java/at/tuwien/entities/Database.java
deleted file mode 100644
index 68f4983c5f1f1ff05a68f41c09720400ce453154..0000000000000000000000000000000000000000
--- a/fda-database-service/services/src/main/java/at/tuwien/entities/Database.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package at.tuwien.entities;
-
-import org.springframework.data.elasticsearch.annotations.Document;
-
-@Document(indexName = "databaseindex")
-public class Database extends at.tuwien.entities.database.Database {
-}
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
index 253d3006762e075c2c8ec568311a58f731100858..b8b82717e6fb9f40b597cf62334d85ceff91bf7b 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
@@ -6,6 +6,7 @@ import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
+import org.springframework.data.elasticsearch.annotations.Document;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import javax.persistence.*;
@@ -17,6 +18,7 @@ import java.util.List;
 @Builder
 @AllArgsConstructor
 @NoArgsConstructor
+@Document(indexName = "databaseindex")
 @ToString(onlyExplicitlyIncluded = true)
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
diff --git a/fda-metadata-db/pom.xml b/fda-metadata-db/pom.xml
index 6a54bdda9b17b31af15e24314ac3e9bdafceee75..f94d46424cc831ac60173b4ef8b653b900dfa7c4 100644
--- a/fda-metadata-db/pom.xml
+++ b/fda-metadata-db/pom.xml
@@ -58,6 +58,10 @@
             <artifactId>postgresql</artifactId>
             <scope>runtime</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-elasticsearch</artifactId>
+        </dependency>
         <!-- IDE -->
         <dependency>
             <groupId>org.projectlombok</groupId>
diff --git a/fda-query-service/pom.xml b/fda-query-service/pom.xml
index 3747a474fef4ff38cfc946bb2621f8aafde7ccc1..2050b7b790e875d3b8080149d14acf6c75c92df2 100644
--- a/fda-query-service/pom.xml
+++ b/fda-query-service/pom.xml
@@ -59,6 +59,10 @@
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-elasticsearch</artifactId>
+        </dependency>
         <!-- IDE -->
         <dependency>
             <groupId>org.projectlombok</groupId>
diff --git a/fda-query-service/rest-service/src/main/java/at/tuwien/FdaQueryServiceApplication.java b/fda-query-service/rest-service/src/main/java/at/tuwien/FdaQueryServiceApplication.java
index 857e6b34b27b2aee8a8330ea2201e5c403d24d3d..3074ec598d0885541498d2234f8645e1ab681d3a 100644
--- a/fda-query-service/rest-service/src/main/java/at/tuwien/FdaQueryServiceApplication.java
+++ b/fda-query-service/rest-service/src/main/java/at/tuwien/FdaQueryServiceApplication.java
@@ -3,6 +3,7 @@ package at.tuwien;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
 import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -14,7 +15,8 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
 @SpringBootApplication
 @EnableTransactionManagement
 @EntityScan(basePackages = "at.tuwien.entities")
-@EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
+@EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"})
+@EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
 public class FdaQueryServiceApplication {
 
     public static void main(String[] args) {
diff --git a/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceUnitTest.java b/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceUnitTest.java
index 324be2c08d13284e0f43477f47fcdc59e671fc03..98248fb8eb732b689f99a5193a0109f2cac29b80 100644
--- a/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceUnitTest.java
+++ b/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceUnitTest.java
@@ -6,7 +6,7 @@ import at.tuwien.exception.DatabaseConnectionException;
 import at.tuwien.exception.DatabaseNotFoundException;
 import at.tuwien.exception.ImageNotSupportedException;
 import at.tuwien.exception.QueryMalformedException;
-import at.tuwien.repository.DatabaseRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/fda-query-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java b/fda-query-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa60a6dbbcdd124de8a38c4098ee43c7115df16f
--- /dev/null
+++ b/fda-query-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
@@ -0,0 +1,9 @@
+package at.tuwien.repository.elastic;
+
+import at.tuwien.entities.database.Database;
+import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository(value = "ElasticDatabaseService")
+public interface DatabaseRepository extends ElasticsearchRepository<Database, Long> {
+}
\ No newline at end of file
diff --git a/fda-query-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java b/fda-query-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
similarity index 88%
rename from fda-query-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java
rename to fda-query-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
index 3ad63e9e3a68840c5f793936e3e2391728e5735d..1d03fa3690e3e2637c0693550481f2ec97a62d47 100644
--- a/fda-query-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java
+++ b/fda-query-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.database.Database;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-query-service/services/src/main/java/at/tuwien/service/QueryService.java b/fda-query-service/services/src/main/java/at/tuwien/service/QueryService.java
index e620b31868a46f665aadbd48403a14a4becb3233..59ef186ea09e63c59c957c1604d3cdacc128bcd9 100644
--- a/fda-query-service/services/src/main/java/at/tuwien/service/QueryService.java
+++ b/fda-query-service/services/src/main/java/at/tuwien/service/QueryService.java
@@ -1,6 +1,5 @@
 package at.tuwien.service;
 
-import at.tuwien.api.database.query.ExecuteQueryDto;
 import at.tuwien.api.database.query.QueryResultDto;
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.database.query.Query;
@@ -8,7 +7,7 @@ import at.tuwien.exception.DatabaseConnectionException;
 import at.tuwien.exception.DatabaseNotFoundException;
 import at.tuwien.exception.ImageNotSupportedException;
 import at.tuwien.exception.QueryMalformedException;
-import at.tuwien.repository.DatabaseRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
 import lombok.extern.log4j.Log4j2;
 import net.sf.jsqlparser.JSQLParserException;
 import net.sf.jsqlparser.parser.CCJSqlParserManager;
@@ -23,7 +22,6 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.persistence.EntityNotFoundException;
 import java.io.StringReader;
 import java.sql.SQLFeatureNotSupportedException;
-import java.sql.SQLSyntaxErrorException;
 import java.sql.Timestamp;
 import java.util.List;
 import java.util.Optional;
diff --git a/fda-table-service/pom.xml b/fda-table-service/pom.xml
index 084fb670bed029e6ef24fb91e8dec713d8d47675..8a2ceab36fa2cf151ecda455876cbecb13d5db56 100644
--- a/fda-table-service/pom.xml
+++ b/fda-table-service/pom.xml
@@ -72,6 +72,10 @@
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-elasticsearch</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.mariadb.jdbc</groupId>
             <artifactId>mariadb-java-client</artifactId>
diff --git a/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java b/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
index c3c1fbfeb1830f28f0907db2800db52142d371fd..90bb253a4c549241394f0696b4b094faa9b46ab4 100644
--- a/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
+++ b/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
@@ -3,6 +3,7 @@ package at.tuwien;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
 import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -13,7 +14,8 @@ import springfox.documentation.oas.annotations.EnableOpenApi;
 @EnableJpaAuditing
 @EnableOpenApi
 @EnableTransactionManagement
-@EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
+@EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"})
+@EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
 @EntityScan(basePackages = {"at.tuwien.entities"})
 public class FdaTableServiceApplication {
 
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
index b421f2f3944aff6599fa790538d897c8383c898f..3b8185282282c0d59020a78484b2963cb7250148 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
@@ -4,15 +4,11 @@ import at.tuwien.BaseUnitTest;
 import at.tuwien.api.database.table.TableBriefDto;
 import at.tuwien.api.database.table.TableCreateDto;
 import at.tuwien.api.database.table.TableDto;
-import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.endpoints.TableEndpoint;
-import at.tuwien.entities.database.Database;
 import at.tuwien.exception.*;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import at.tuwien.service.TableService;
-import com.opencsv.exceptions.CsvException;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,13 +16,8 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
-import org.springframework.util.ResourceUtils;
 
-import java.io.IOException;
-import java.nio.file.Files;
-import java.sql.SQLException;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperIntegrationTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperIntegrationTest.java
index c7a8d2dfeb73ceb7d6bff12eecbfba98511b7817..39b0a8c0e1afed8a1c3887e322c6aaaf152dad0d 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperIntegrationTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperIntegrationTest.java
@@ -7,15 +7,14 @@ import at.tuwien.api.database.table.columns.ColumnTypeDto;
 import at.tuwien.exception.ArbitraryPrimaryKeysException;
 import at.tuwien.exception.ImageNotSupportedException;
 import at.tuwien.exception.TableMalformedException;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.exception.NotModifiedException;
 import com.github.dockerjava.api.model.HostConfig;
 import com.github.dockerjava.api.model.PortBinding;
 import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang.SerializationUtils;
 import org.jooq.*;
 import org.jooq.impl.DSL;
 import org.junit.jupiter.api.AfterEach;
@@ -29,12 +28,10 @@ import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.validation.constraints.NotNull;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.util.*;
-import java.util.stream.Collectors;
 
 import static org.jooq.impl.DSL.table;
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/service/ImportServiceIntegrationTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/service/ImportServiceIntegrationTest.java
index acf9ce6b2b3ac420c7fda7318cd35f7aea22f92f..29392ab82e2dd3745d2d02785b8d6657fc74e24e 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/service/ImportServiceIntegrationTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/service/ImportServiceIntegrationTest.java
@@ -5,10 +5,10 @@ import at.tuwien.api.database.table.TableCreateDto;
 import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.ImageRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.exception.NotModifiedException;
@@ -21,16 +21,10 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ResourceUtils;
-import org.springframework.web.multipart.MultipartFile;
-import org.synchronoss.cloud.nio.multipart.Multipart;
 
-import java.io.IOException;
-import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.Optional;
 
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
index b22b55afffb10b9024a04b563456dc11705f2165..6bf1fe24cd4b71a596977d7056bf336566a4216d 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
@@ -2,13 +2,12 @@ package at.tuwien.service;
 
 import at.tuwien.BaseUnitTest;
 import at.tuwien.api.database.table.TableCreateDto;
-import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.ImageRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.exception.NotModifiedException;
@@ -18,16 +17,11 @@ import org.junit.jupiter.api.*;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ResourceUtils;
 
-import java.io.IOException;
-import java.nio.file.Files;
 import java.util.Arrays;
-import java.util.Optional;
 
 import static org.junit.jupiter.api.Assertions.*;
 
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
index 3d672928ce6e75a6fb7e7e982197b82c58f97d5d..0e8d160abe0fc636d03351d2988dabf1f700062b 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
@@ -5,8 +5,8 @@ import at.tuwien.api.database.table.TableCsvDto;
 import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.opencsv.exceptions.CsvException;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa60a6dbbcdd124de8a38c4098ee43c7115df16f
--- /dev/null
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
@@ -0,0 +1,9 @@
+package at.tuwien.repository.elastic;
+
+import at.tuwien.entities.database.Database;
+import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository(value = "ElasticDatabaseService")
+public interface DatabaseRepository extends ElasticsearchRepository<Database, Long> {
+}
\ No newline at end of file
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
similarity index 88%
rename from fda-table-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java
rename to fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
index ae72a7d1feaabbaf1a9a27a890feae604a5a8343..39566b1cc0c471f71212f9319e1497d0e3dcac66 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.container.Container;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
similarity index 88%
rename from fda-table-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java
rename to fda-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
index 7ce19f928d2031dbf0cf01af25fa89043af72f50..35ca349b07cab2ee44e5c0d145d37084b2a836f0 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.database.Database;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/ImageRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
similarity index 88%
rename from fda-table-service/services/src/main/java/at/tuwien/repository/ImageRepository.java
rename to fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
index 92d114decede0954b1993032403e011f40186052..247ce97770d636831aef83e8cc1a471ed67019a9 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/ImageRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.container.image.ContainerImage;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/TableRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java
similarity index 94%
rename from fda-table-service/services/src/main/java/at/tuwien/repository/TableRepository.java
rename to fda-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java
index c65c8e38f95dcd7f14b69f0549f1ccf2171d155e..ffecb43d937bf00bbaecb3459bdd83ac8372d0b4 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/TableRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.database.table.Table;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java b/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
index 37c1fcd50ffe4e8a0e29386e27a33cc5f3415902..7fe902356773dcc20de46ba081ed7b23484cec60 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
@@ -11,8 +11,8 @@ import at.tuwien.exception.*;
 import at.tuwien.mapper.ImageMapper;
 import at.tuwien.mapper.QueryMapper;
 import at.tuwien.mapper.TableMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.opencsv.CSVParser;
 import com.opencsv.CSVParserBuilder;
 import com.opencsv.CSVReader;
@@ -24,7 +24,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ResourceUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.persistence.EntityNotFoundException;
@@ -32,7 +31,6 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.nio.file.Files;
-import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.sql.SQLException;
 import java.util.*;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java b/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java
index 7ea1bb33cd000567035327dde50a6b5397a030aa..0d50bff8d5f8ab64699f9f018cb9119c39d26f4f 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java
@@ -10,8 +10,8 @@ import at.tuwien.exception.*;
 import at.tuwien.mapper.ImageMapper;
 import at.tuwien.mapper.QueryMapper;
 import at.tuwien.mapper.TableMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.opencsv.CSVParser;
 import com.opencsv.CSVParserBuilder;
 import com.opencsv.CSVReader;
@@ -22,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
-import org.synchronoss.cloud.nio.multipart.Multipart;
 
 import javax.persistence.EntityNotFoundException;
 import java.io.*;