From 39b318caa7d5844f258380d226f83b4044986979 Mon Sep 17 00:00:00 2001 From: Peter-Josef Meisch Date: Fri, 20 Mar 2020 19:07:58 +0100 Subject: [PATCH] DATAES-765 - Pageable.unpaged() is not used to build a query returning all documents. Original PR: #409 --- .../data/elasticsearch/core/AbstractElasticsearchTemplate.java | 2 ++ .../data/elasticsearch/core/ElasticsearchRestTemplate.java | 3 +++ .../data/elasticsearch/core/ElasticsearchTemplate.java | 3 +++ .../data/elasticsearch/core/ReactiveElasticsearchTemplate.java | 2 ++ 4 files changed, 10 insertions(+) diff --git a/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java index b983548f5..defc9902c 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java @@ -15,6 +15,8 @@ import org.springframework.util.StringUtils; */ public abstract class AbstractElasticsearchTemplate { + static final Integer INDEX_MAX_RESULT_WINDOW = 10_000; + private static final Logger LOGGER = LoggerFactory.getLogger(AbstractElasticsearchTemplate.class); protected ElasticsearchConverter elasticsearchConverter; diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java index fb8a99648..08d872fd4 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java @@ -1347,6 +1347,9 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate startRecord = (int) offset; sourceBuilder.size(query.getPageable().getPageSize()); + } else { + startRecord = 0; + sourceBuilder.size(INDEX_MAX_RESULT_WINDOW); } sourceBuilder.from(startRecord); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java index a8deb4ff8..7be0ff058 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java @@ -1124,6 +1124,9 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate startRecord = (int) offset; searchRequestBuilder.setSize(query.getPageable().getPageSize()); + } else { + startRecord = 0; + searchRequestBuilder.setSize(INDEX_MAX_RESULT_WINDOW); } searchRequestBuilder.setFrom(startRecord); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java index 2efcd19d2..5ee975e61 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java @@ -367,6 +367,8 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera request.source(searchSourceBuilder); } else { + searchSourceBuilder.from(0); + searchSourceBuilder.size(AbstractElasticsearchTemplate.INDEX_MAX_RESULT_WINDOW); request.source(searchSourceBuilder); } return request;