diff --git a/backend/src/main/java/fr/inra/urgi/gpds/domain/datadiscovery/criteria/DataDiscoveryCriteriaImpl.java b/backend/src/main/java/fr/inra/urgi/gpds/domain/datadiscovery/criteria/DataDiscoveryCriteriaImpl.java
index 2a5ee6880076a9bf60f9324ecff02bec24e4cbcc..5fc5f7fce03a59430f36fa7e53c6e8f98d366044 100644
--- a/backend/src/main/java/fr/inra/urgi/gpds/domain/datadiscovery/criteria/DataDiscoveryCriteriaImpl.java
+++ b/backend/src/main/java/fr/inra/urgi/gpds/domain/datadiscovery/criteria/DataDiscoveryCriteriaImpl.java
@@ -42,10 +42,18 @@ public class DataDiscoveryCriteriaImpl extends PaginationCriteriaImpl implements
     private List<String> facetFields;
 
     @NoDocumentMapping
-    private final String sortBy = null;// = "schema:name";
+    private String sortBy = null;// = "schema:name";
+
+    public void setSortBy(String sortBy) {
+        this.sortBy = sortBy;
+    }
 
     @NoDocumentMapping
-    private final String sortOrder = null;// = SortOrder.ASC.name();
+    private String sortOrder = null;// = SortOrder.ASC.name();
+
+    public void setSortOrder(String sortOrder) {
+        this.sortOrder = sortOrder;
+    }
 
     @Override
     public List<String> getCrops() {
diff --git a/backend/src/main/java/fr/inra/urgi/gpds/repository/es/DataDiscoveryRepositoryImpl.java b/backend/src/main/java/fr/inra/urgi/gpds/repository/es/DataDiscoveryRepositoryImpl.java
index 28449e9cbbfa01f39517602e1d6643b1683fccb7..e171ee28d4e5018f7818e7533186770cd7f9954a 100644
--- a/backend/src/main/java/fr/inra/urgi/gpds/repository/es/DataDiscoveryRepositoryImpl.java
+++ b/backend/src/main/java/fr/inra/urgi/gpds/repository/es/DataDiscoveryRepositoryImpl.java
@@ -27,7 +27,6 @@ import org.elasticsearch.client.RestHighLevelClient;
 import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
-import org.elasticsearch.search.builder.SearchSourceBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -115,8 +114,6 @@ public class DataDiscoveryRepositoryImpl implements DataDiscoveryRepository {
         // Prepare search request with query
         SearchRequest request = ESGenericFindRepository.prepareSearchRequest(
             query, criteria, documentMetadata, requestFactory);
-        request.source(new SearchSourceBuilder());
-        request.source().query(query);
 
         // Build facet aggregations
         if (facetFields != null) {
diff --git a/backend/src/test/java/fr/inra/urgi/gpds/repository/es/DataDiscoveryRepositoryTest.java b/backend/src/test/java/fr/inra/urgi/gpds/repository/es/DataDiscoveryRepositoryTest.java
index 99628d2d39b9018c74ec47e5dbb53350b75da980..c91574bff41ac03a33a89ac8310770abb6f88e3d 100644
--- a/backend/src/test/java/fr/inra/urgi/gpds/repository/es/DataDiscoveryRepositoryTest.java
+++ b/backend/src/test/java/fr/inra/urgi/gpds/repository/es/DataDiscoveryRepositoryTest.java
@@ -7,6 +7,7 @@ import fr.inra.urgi.gpds.domain.datadiscovery.data.Facet;
 import fr.inra.urgi.gpds.domain.datadiscovery.data.FacetTerm;
 import fr.inra.urgi.gpds.domain.datadiscovery.response.DataDiscoveryResponse;
 import fr.inra.urgi.gpds.repository.es.setup.ESSetUp;
+import org.elasticsearch.search.sort.SortOrder;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
@@ -134,6 +135,35 @@ class DataDiscoveryRepositoryTest {
         assertThat(result.getResult().getData()).isNotNull().isNotEmpty().extracting("url").isNotNull().isNotEmpty();
     }
 
+    @Test
+    void should_Find_Documents_By_Page() {
+        DataDiscoveryCriteriaImpl criteria = new DataDiscoveryCriteriaImpl();
+        criteria.setPage(0L);
+        criteria.setPageSize(2L);
+        criteria.setSortBy("@id");
+        criteria.setSortOrder(SortOrder.DESC.toString());
+        DataDiscoveryResponse result = repository.find(criteria);
+        assertThat(result.getResult().getData().size()).isEqualTo(2);
+        assertThat(result.getResult().getData().get(0).getUri()).isEqualTo("urn:germplasm/austro_kolben");
+        assertThat(result.getResult().getData().get(1).getUri()).isEqualTo("urn:foo_study");
+
+        assertThat(result.getMetadata().getPagination().getCurrentPage()).isEqualTo(0L);
+        assertThat(result.getMetadata().getPagination().getTotalPages()).isEqualTo(5L);
+        assertThat(result.getMetadata().getPagination().getPageSize()).isEqualTo(2L);
+        assertThat(result.getMetadata().getPagination().getTotalCount()).isEqualTo(10L);
+
+        criteria.setPage(1L);
+        criteria.setPageSize(3L);
+        result = repository.find(criteria);
+        assertThat(result.getResult().getData().size()).isEqualTo(3);
+        assertThat(result.getResult().getData().get(0).getUri()).isEqualTo("urn:foo2_germplasm");
+
+        assertThat(result.getMetadata().getPagination().getCurrentPage()).isEqualTo(1L);
+        assertThat(result.getMetadata().getPagination().getTotalPages()).isEqualTo(4L);
+        assertThat(result.getMetadata().getPagination().getPageSize()).isEqualTo(3L);
+        assertThat(result.getMetadata().getPagination().getTotalCount()).isEqualTo(10L);
+    }
+
     @Test
     void should_Find_With_Facets() {
         DataDiscoveryCriteriaImpl criteria = new DataDiscoveryCriteriaImpl();
diff --git a/backend/src/test/resources/fr/inra/urgi/gpds/repository/es/setup/fixture/datadiscovery0.json b/backend/src/test/resources/fr/inra/urgi/gpds/repository/es/setup/fixture/datadiscovery0.json
index 2412445fde1b10ee399fc6d74f4e50d92b53635a..58e6e0968583ba986fd109cff7e905b7bab457ee 100644
--- a/backend/src/test/resources/fr/inra/urgi/gpds/repository/es/setup/fixture/datadiscovery0.json
+++ b/backend/src/test/resources/fr/inra/urgi/gpds/repository/es/setup/fixture/datadiscovery0.json
@@ -30,6 +30,7 @@
     }
   },
   {
+    "@id": "urn:germplasm/austro_kolben",
     "schema:name": "AUSTRO KOLBEN",
     "germplasm": {
       "accession": ["AUSTRO KOLBEN"]
@@ -67,4 +68,4 @@
   {
     "schema:name": "FOO 10"
   }
-]
\ No newline at end of file
+]