From a480020e93734518414029632eab294878308db0 Mon Sep 17 00:00:00 2001 From: Yongjun Park Date: Sat, 14 Apr 2018 03:07:04 +0900 Subject: [PATCH] Add searchQuery is passed creating scroll (#59) Embrace searchQuery parameter in order to fix that scroll of search query always returns all data of given indices without considering parameter. --- .../vanroy/springdata/jest/JestElasticsearchTemplate.java | 3 +++ .../springdata/jest/JestElasticsearchTemplateTests.java | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/spring-data-jest/src/main/java/com/github/vanroy/springdata/jest/JestElasticsearchTemplate.java b/spring-data-jest/src/main/java/com/github/vanroy/springdata/jest/JestElasticsearchTemplate.java index 91618f9c..36f884d9 100644 --- a/spring-data-jest/src/main/java/com/github/vanroy/springdata/jest/JestElasticsearchTemplate.java +++ b/spring-data-jest/src/main/java/com/github/vanroy/springdata/jest/JestElasticsearchTemplate.java @@ -926,6 +926,9 @@ private SearchResult doScroll(SearchSourceBuilder searchSourceBuilder, SearchQue Assert.notNull(searchQuery.getTypes(), "No type define for Query"); Assert.notNull(searchQuery.getPageable(), "Query.pageable is required for scan & scroll"); + QueryBuilder elasticsearchQuery = searchQuery.getQuery(); + searchSourceBuilder.query(elasticsearchQuery != null ? elasticsearchQuery : QueryBuilders.matchAllQuery()); + if (searchQuery.getFilter() != null) { searchSourceBuilder.postFilter(searchQuery.getFilter()); } diff --git a/spring-data-jest/src/test/java/com/github/vanroy/springdata/jest/JestElasticsearchTemplateTests.java b/spring-data-jest/src/test/java/com/github/vanroy/springdata/jest/JestElasticsearchTemplateTests.java index 32799709..d1274196 100755 --- a/spring-data-jest/src/test/java/com/github/vanroy/springdata/jest/JestElasticsearchTemplateTests.java +++ b/spring-data-jest/src/test/java/com/github/vanroy/springdata/jest/JestElasticsearchTemplateTests.java @@ -844,12 +844,14 @@ public void shouldReturnResultsWithScanAndScrollForGivenCriteriaQuery() { public void shouldReturnResultsWithScanAndScrollForGivenSearchQuery() { //given List entities = createSampleEntitiesWithMessage("Test message", 30); + entities.addAll(createSampleEntitiesWithMessage("Filtered out message", 30)); // when elasticsearchTemplate.bulkIndex(entities); elasticsearchTemplate.refresh(SampleEntity.class); // then - SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_NAME) + SearchQuery searchQuery = new NativeSearchQueryBuilder() + .withQuery(QueryBuilders.matchQuery("message", "Test")).withIndices(INDEX_NAME) .withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build(); ScrolledPage scroll = (ScrolledPage) elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);