DATAES-459 - Return ScrolledPage instead of Page while using startScroll and continueScroll methods.

Original pull request: #274
This commit is contained in:
Dmitriy Yakovlev 2019-04-18 20:18:56 +03:00 committed by xhaggi
parent 9abe0f28c5
commit be34ff8703
5 changed files with 63 additions and 62 deletions

View File

@ -40,13 +40,13 @@ SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withPageable(PageRequest.of(0, 10)) .withPageable(PageRequest.of(0, 10))
.build(); .build();
Page<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
String scrollId = ((ScrolledPage) scroll).getScrollId(); String scrollId = scroll.getScrollId();
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scrollId = ((ScrolledPage) scroll).getScrollId(); scrollId = scroll.getScrollId();
scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class); scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class);
} }
elasticsearchTemplate.clearScroll(scrollId); elasticsearchTemplate.clearScroll(scrollId);
@ -74,4 +74,4 @@ while (stream.hasNext()) {
sampleEntities.add(stream.next()); sampleEntities.add(stream.next());
} }
---- ----
==== ====

View File

@ -36,6 +36,7 @@ import java.util.stream.Collectors;
* @author Mohsin Husen * @author Mohsin Husen
* @author Kevin Leturc * @author Kevin Leturc
* @author Zetang Zeng * @author Zetang Zeng
* @author Dmitriy Yakovlev
*/ */
public interface ElasticsearchOperations { public interface ElasticsearchOperations {
@ -544,7 +545,7 @@ public interface ElasticsearchOperations {
* @param clazz The class of entity to retrieve. * @param clazz The class of entity to retrieve.
* @return The scan id for input query. * @return The scan id for input query.
*/ */
<T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery query, Class<T> clazz); <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery query, Class<T> clazz);
/** /**
* Returns scrolled page for given query * Returns scrolled page for given query
@ -555,7 +556,7 @@ public interface ElasticsearchOperations {
* @param mapper Custom impl to map result to entities * @param mapper Custom impl to map result to entities
* @return The scan id for input query. * @return The scan id for input query.
*/ */
<T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery query, Class<T> clazz, SearchResultMapper mapper); <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery query, Class<T> clazz, SearchResultMapper mapper);
/** /**
* Returns scrolled page for given query * Returns scrolled page for given query
@ -566,7 +567,7 @@ public interface ElasticsearchOperations {
* @param clazz The class of entity to retrieve. * @param clazz The class of entity to retrieve.
* @return The scan id for input query. * @return The scan id for input query.
*/ */
<T> Page<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz); <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz);
/** /**
* Returns scrolled page for given query * Returns scrolled page for given query
@ -577,11 +578,11 @@ public interface ElasticsearchOperations {
* @param mapper Custom impl to map result to entities * @param mapper Custom impl to map result to entities
* @return The scan id for input query. * @return The scan id for input query.
*/ */
<T> Page<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz, SearchResultMapper mapper); <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz, SearchResultMapper mapper);
<T> Page<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz); <T> ScrolledPage<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz);
<T> Page<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz, SearchResultMapper mapper); <T> ScrolledPage<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz, SearchResultMapper mapper);
/** /**
* Clears the search contexts associated with specified scroll ids. * Clears the search contexts associated with specified scroll ids.
* *

View File

@ -496,7 +496,7 @@ public class ElasticsearchRestTemplate
@Override @Override
public <T> CloseableIterator<T> stream(CriteriaQuery query, Class<T> clazz) { public <T> CloseableIterator<T> stream(CriteriaQuery query, Class<T> clazz) {
final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis(); final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis();
return doStream(scrollTimeInMillis, (ScrolledPage<T>) startScroll(scrollTimeInMillis, query, clazz), clazz, return doStream(scrollTimeInMillis, startScroll(scrollTimeInMillis, query, clazz), clazz,
resultsMapper); resultsMapper);
} }
@ -508,7 +508,7 @@ public class ElasticsearchRestTemplate
@Override @Override
public <T> CloseableIterator<T> stream(SearchQuery query, final Class<T> clazz, final SearchResultMapper mapper) { public <T> CloseableIterator<T> stream(SearchQuery query, final Class<T> clazz, final SearchResultMapper mapper) {
final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis(); final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis();
return doStream(scrollTimeInMillis, (ScrolledPage<T>) startScroll(scrollTimeInMillis, query, clazz, mapper), clazz, return doStream(scrollTimeInMillis, startScroll(scrollTimeInMillis, query, clazz, mapper), clazz,
mapper); mapper);
} }
@ -547,7 +547,7 @@ public class ElasticsearchRestTemplate
// Test if it remains hits // Test if it remains hits
if (currentHits == null || !currentHits.hasNext()) { if (currentHits == null || !currentHits.hasNext()) {
// Do a new request // Do a new request
final ScrolledPage<T> scroll = (ScrolledPage<T>) continueScroll(scrollId, scrollTimeInMillis, clazz, mapper); final ScrolledPage<T> scroll = continueScroll(scrollId, scrollTimeInMillis, clazz, mapper);
// Save hits and scroll id // Save hits and scroll id
currentHits = scroll.iterator(); currentHits = scroll.iterator();
finished = !currentHits.hasNext(); finished = !currentHits.hasNext();
@ -878,14 +878,14 @@ public class ElasticsearchRestTemplate
} }
}; };
Page<SearchHit> scrolledResult = startScroll(scrollTimeInMillis, searchQuery, SearchHit.class, ScrolledPage<SearchHit> scrolledResult = startScroll(scrollTimeInMillis, searchQuery, SearchHit.class,
deleteEntryResultMapper); deleteEntryResultMapper);
BulkRequest request = new BulkRequest(); BulkRequest request = new BulkRequest();
List<SearchHit> documentsToDelete = new ArrayList<>(); List<SearchHit> documentsToDelete = new ArrayList<>();
do { do {
documentsToDelete.addAll(scrolledResult.getContent()); documentsToDelete.addAll(scrolledResult.getContent());
scrolledResult = continueScroll(((ScrolledPage<T>) scrolledResult).getScrollId(), scrollTimeInMillis, scrolledResult = continueScroll(scrolledResult.getScrollId(), scrollTimeInMillis,
SearchHit.class, deleteEntryResultMapper); SearchHit.class, deleteEntryResultMapper);
} while (scrolledResult.getContent().size() != 0); } while (scrolledResult.getContent().size() != 0);
@ -903,7 +903,7 @@ public class ElasticsearchRestTemplate
} }
} }
clearScroll(((ScrolledPage<T>) scrolledResult).getScrollId()); clearScroll(scrolledResult.getScrollId());
} }
@Override @Override
@ -1010,29 +1010,29 @@ public class ElasticsearchRestTemplate
} }
} }
public <T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) { public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) {
SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery); SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery);
return resultsMapper.mapResults(response, clazz, null); return resultsMapper.mapResults(response, clazz, null);
} }
public <T> Page<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz) { public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz) {
SearchResponse response = doScroll(prepareScroll(criteriaQuery, scrollTimeInMillis, clazz), criteriaQuery); SearchResponse response = doScroll(prepareScroll(criteriaQuery, scrollTimeInMillis, clazz), criteriaQuery);
return resultsMapper.mapResults(response, clazz, null); return resultsMapper.mapResults(response, clazz, null);
} }
public <T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz, public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz,
SearchResultMapper mapper) { SearchResultMapper mapper) {
SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery); SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery);
return mapper.mapResults(response, clazz, null); return mapper.mapResults(response, clazz, null);
} }
public <T> Page<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz, public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz,
SearchResultMapper mapper) { SearchResultMapper mapper) {
SearchResponse response = doScroll(prepareScroll(criteriaQuery, scrollTimeInMillis, clazz), criteriaQuery); SearchResponse response = doScroll(prepareScroll(criteriaQuery, scrollTimeInMillis, clazz), criteriaQuery);
return mapper.mapResults(response, clazz, null); return mapper.mapResults(response, clazz, null);
} }
public <T> Page<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz) { public <T> ScrolledPage<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz) {
SearchScrollRequest request = new SearchScrollRequest(scrollId); SearchScrollRequest request = new SearchScrollRequest(scrollId);
request.scroll(TimeValue.timeValueMillis(scrollTimeInMillis)); request.scroll(TimeValue.timeValueMillis(scrollTimeInMillis));
SearchResponse response; SearchResponse response;
@ -1044,7 +1044,7 @@ public class ElasticsearchRestTemplate
return resultsMapper.mapResults(response, clazz, Pageable.unpaged()); return resultsMapper.mapResults(response, clazz, Pageable.unpaged());
} }
public <T> Page<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz, public <T> ScrolledPage<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz,
SearchResultMapper mapper) { SearchResultMapper mapper) {
SearchScrollRequest request = new SearchScrollRequest(scrollId); SearchScrollRequest request = new SearchScrollRequest(scrollId);
request.scroll(TimeValue.timeValueMillis(scrollTimeInMillis)); request.scroll(TimeValue.timeValueMillis(scrollTimeInMillis));

View File

@ -437,7 +437,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, EsClient<
@Override @Override
public <T> CloseableIterator<T> stream(CriteriaQuery query, Class<T> clazz) { public <T> CloseableIterator<T> stream(CriteriaQuery query, Class<T> clazz) {
final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis(); final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis();
return doStream(scrollTimeInMillis, (ScrolledPage<T>) startScroll(scrollTimeInMillis, query, clazz), clazz, return doStream(scrollTimeInMillis, startScroll(scrollTimeInMillis, query, clazz), clazz,
resultsMapper); resultsMapper);
} }
@ -449,7 +449,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, EsClient<
@Override @Override
public <T> CloseableIterator<T> stream(SearchQuery query, final Class<T> clazz, final SearchResultMapper mapper) { public <T> CloseableIterator<T> stream(SearchQuery query, final Class<T> clazz, final SearchResultMapper mapper) {
final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis(); final long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis();
return doStream(scrollTimeInMillis, (ScrolledPage<T>) startScroll(scrollTimeInMillis, query, clazz, mapper), clazz, return doStream(scrollTimeInMillis, startScroll(scrollTimeInMillis, query, clazz, mapper), clazz,
mapper); mapper);
} }
@ -488,7 +488,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, EsClient<
// Test if it remains hits // Test if it remains hits
if (currentHits == null || !currentHits.hasNext()) { if (currentHits == null || !currentHits.hasNext()) {
// Do a new request // Do a new request
final ScrolledPage<T> scroll = (ScrolledPage<T>) continueScroll(scrollId, scrollTimeInMillis, clazz, mapper); final ScrolledPage<T> scroll = continueScroll(scrollId, scrollTimeInMillis, clazz, mapper);
// Save hits and scroll id // Save hits and scroll id
currentHits = scroll.iterator(); currentHits = scroll.iterator();
finished = !currentHits.hasNext(); finished = !currentHits.hasNext();
@ -765,14 +765,14 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, EsClient<
} }
}; };
Page<SearchHit> scrolledResult = startScroll(scrollTimeInMillis, searchQuery, SearchHit.class, ScrolledPage<SearchHit> scrolledResult = startScroll(scrollTimeInMillis, searchQuery, SearchHit.class,
deleteEntryResultMapper); deleteEntryResultMapper);
BulkRequestBuilder bulkRequestBuilder = client.prepareBulk(); BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
List<SearchHit> documentsToDelete = new ArrayList<>(); List<SearchHit> documentsToDelete = new ArrayList<>();
do { do {
documentsToDelete.addAll(scrolledResult.getContent()); documentsToDelete.addAll(scrolledResult.getContent());
scrolledResult = continueScroll(((ScrolledPage<T>) scrolledResult).getScrollId(), scrollTimeInMillis, scrolledResult = continueScroll(scrolledResult.getScrollId(), scrollTimeInMillis,
SearchHit.class, deleteEntryResultMapper); SearchHit.class, deleteEntryResultMapper);
} while (scrolledResult.getContent().size() != 0); } while (scrolledResult.getContent().size() != 0);
@ -784,7 +784,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, EsClient<
bulkRequestBuilder.execute().actionGet(); bulkRequestBuilder.execute().actionGet();
} }
clearScroll(((ScrolledPage<T>) scrolledResult).getScrollId()); clearScroll(scrolledResult.getScrollId());
} }
@Override @Override
@ -873,35 +873,35 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, EsClient<
return getSearchResponse(requestBuilder.setQuery(searchQuery.getQuery())); return getSearchResponse(requestBuilder.setQuery(searchQuery.getQuery()));
} }
public <T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) { public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) {
SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery); SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery);
return resultsMapper.mapResults(response, clazz, null); return resultsMapper.mapResults(response, clazz, null);
} }
public <T> Page<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz) { public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz) {
SearchResponse response = doScroll(prepareScroll(criteriaQuery, scrollTimeInMillis, clazz), criteriaQuery); SearchResponse response = doScroll(prepareScroll(criteriaQuery, scrollTimeInMillis, clazz), criteriaQuery);
return resultsMapper.mapResults(response, clazz, null); return resultsMapper.mapResults(response, clazz, null);
} }
public <T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz, public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz,
SearchResultMapper mapper) { SearchResultMapper mapper) {
SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery); SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery);
return mapper.mapResults(response, clazz, null); return mapper.mapResults(response, clazz, null);
} }
public <T> Page<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz, public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQuery, Class<T> clazz,
SearchResultMapper mapper) { SearchResultMapper mapper) {
SearchResponse response = doScroll(prepareScroll(criteriaQuery, scrollTimeInMillis, clazz), criteriaQuery); SearchResponse response = doScroll(prepareScroll(criteriaQuery, scrollTimeInMillis, clazz), criteriaQuery);
return mapper.mapResults(response, clazz, null); return mapper.mapResults(response, clazz, null);
} }
public <T> Page<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz) { public <T> ScrolledPage<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz) {
SearchResponse response = getSearchResponse( SearchResponse response = getSearchResponse(
client.prepareSearchScroll(scrollId).setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)).execute()); client.prepareSearchScroll(scrollId).setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)).execute());
return resultsMapper.mapResults(response, clazz, Pageable.unpaged()); return resultsMapper.mapResults(response, clazz, Pageable.unpaged());
} }
public <T> Page<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz, public <T> ScrolledPage<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz,
SearchResultMapper mapper) { SearchResultMapper mapper) {
SearchResponse response = getSearchResponse( SearchResponse response = getSearchResponse(
client.prepareSearchScroll(scrollId).setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)).execute()); client.prepareSearchScroll(scrollId).setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)).execute());

View File

@ -1017,11 +1017,11 @@ public class ElasticsearchTemplateTests {
criteriaQuery.addTypes(TYPE_NAME); criteriaQuery.addTypes(TYPE_NAME);
criteriaQuery.setPageable(PageRequest.of(0, 10)); criteriaQuery.setPageable(PageRequest.of(0, 10));
ScrolledPage<SampleEntity> scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.startScroll( 1000, criteriaQuery, SampleEntity.class); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll( 1000, criteriaQuery, SampleEntity.class);
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.continueScroll(scroll.getScrollId() , 1000, SampleEntity.class); scroll = elasticsearchTemplate.continueScroll(scroll.getScrollId() , 1000, SampleEntity.class);
} }
elasticsearchTemplate.clearScroll(scroll.getScrollId()); elasticsearchTemplate.clearScroll(scroll.getScrollId());
assertThat(sampleEntities.size(), is(equalTo(30))); assertThat(sampleEntities.size(), is(equalTo(30)));
@ -1039,11 +1039,11 @@ public class ElasticsearchTemplateTests {
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_NAME_SAMPLE_ENTITY) SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_NAME_SAMPLE_ENTITY)
.withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build(); .withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
ScrolledPage<SampleEntity> scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.continueScroll(scroll.getScrollId() , 1000, SampleEntity.class); scroll = elasticsearchTemplate.continueScroll(scroll.getScrollId() , 1000, SampleEntity.class);
} }
elasticsearchTemplate.clearScroll(scroll.getScrollId()); elasticsearchTemplate.clearScroll(scroll.getScrollId());
assertThat(sampleEntities.size(), is(equalTo(30))); assertThat(sampleEntities.size(), is(equalTo(30)));
@ -1090,12 +1090,12 @@ public class ElasticsearchTemplateTests {
criteriaQuery.addFields("message"); criteriaQuery.addFields("message");
criteriaQuery.setPageable(PageRequest.of(0, 10)); criteriaQuery.setPageable(PageRequest.of(0, 10));
Page<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, criteriaQuery, SampleEntity.class, searchResultMapper); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, criteriaQuery, SampleEntity.class, searchResultMapper);
String scrollId = ((ScrolledPage<?>)scroll).getScrollId(); String scrollId = scroll.getScrollId();
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scrollId = ((ScrolledPage<?>)scroll).getScrollId(); scrollId = scroll.getScrollId();
scroll = elasticsearchTemplate.continueScroll(scrollId , 1000, SampleEntity.class, searchResultMapper); scroll = elasticsearchTemplate.continueScroll(scrollId , 1000, SampleEntity.class, searchResultMapper);
} }
elasticsearchTemplate. clearScroll(scrollId); elasticsearchTemplate. clearScroll(scrollId);
@ -1122,12 +1122,12 @@ public class ElasticsearchTemplateTests {
.withPageable(PageRequest.of(0, 10)) .withPageable(PageRequest.of(0, 10))
.build(); .build();
Page<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class, searchResultMapper); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class, searchResultMapper);
String scrollId = ((ScrolledPage) scroll).getScrollId(); String scrollId = scroll.getScrollId();
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scrollId = ((ScrolledPage) scroll).getScrollId(); scrollId = scroll.getScrollId();
scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class, searchResultMapper); scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class, searchResultMapper);
} }
elasticsearchTemplate.clearScroll(scrollId); elasticsearchTemplate.clearScroll(scrollId);
@ -1151,12 +1151,12 @@ public class ElasticsearchTemplateTests {
criteriaQuery.addTypes(TYPE_NAME); criteriaQuery.addTypes(TYPE_NAME);
criteriaQuery.setPageable(PageRequest.of(0, 10)); criteriaQuery.setPageable(PageRequest.of(0, 10));
Page<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, criteriaQuery, SampleEntity.class, searchResultMapper); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, criteriaQuery, SampleEntity.class, searchResultMapper);
String scrollId = ((ScrolledPage) scroll).getScrollId(); String scrollId = scroll.getScrollId();
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scrollId = ((ScrolledPage) scroll).getScrollId(); scrollId = scroll.getScrollId();
scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class, searchResultMapper); scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class, searchResultMapper);
} }
elasticsearchTemplate.clearScroll(scrollId); elasticsearchTemplate.clearScroll(scrollId);
@ -1175,12 +1175,12 @@ public class ElasticsearchTemplateTests {
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_NAME_SAMPLE_ENTITY) SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_NAME_SAMPLE_ENTITY)
.withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build(); .withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
Page<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class,searchResultMapper); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class,searchResultMapper);
String scrollId = ((ScrolledPage) scroll).getScrollId(); String scrollId = scroll.getScrollId();
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scrollId = ((ScrolledPage) scroll).getScrollId(); scrollId = scroll.getScrollId();
scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class, searchResultMapper); scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class, searchResultMapper);
} }
elasticsearchTemplate.clearScroll(scrollId); elasticsearchTemplate.clearScroll(scrollId);
@ -1202,12 +1202,12 @@ public class ElasticsearchTemplateTests {
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria()); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria());
criteriaQuery.setPageable(PageRequest.of(0, 10)); criteriaQuery.setPageable(PageRequest.of(0, 10));
Page<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, criteriaQuery, SampleEntity.class); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, criteriaQuery, SampleEntity.class);
String scrollId = ((ScrolledPage) scroll).getScrollId(); String scrollId = scroll.getScrollId();
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scrollId = ((ScrolledPage) scroll).getScrollId(); scrollId = scroll.getScrollId();
scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class); scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class);
} }
elasticsearchTemplate.clearScroll(scrollId); elasticsearchTemplate.clearScroll(scrollId);
@ -1229,12 +1229,12 @@ public class ElasticsearchTemplateTests {
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
.withPageable(PageRequest.of(0, 10)).build(); .withPageable(PageRequest.of(0, 10)).build();
Page<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
String scrollId = ((ScrolledPage) scroll).getScrollId(); String scrollId = scroll.getScrollId();
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scrollId = ((ScrolledPage) scroll).getScrollId(); scrollId = scroll.getScrollId();
scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class); scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, SampleEntity.class);
} }
elasticsearchTemplate.clearScroll(scrollId); elasticsearchTemplate.clearScroll(scrollId);
@ -2657,12 +2657,12 @@ public class ElasticsearchTemplateTests {
criteriaQuery.addTypes(TYPE_NAME); criteriaQuery.addTypes(TYPE_NAME);
criteriaQuery.setPageable(PageRequest.of(0, 10)); criteriaQuery.setPageable(PageRequest.of(0, 10));
ScrolledPage<SampleEntity> scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.startScroll(1000, ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000,
criteriaQuery, SampleEntity.class); criteriaQuery, SampleEntity.class);
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.continueScroll(scroll.getScrollId(), 1000, scroll = elasticsearchTemplate.continueScroll(scroll.getScrollId(), 1000,
SampleEntity.class); SampleEntity.class);
} }
elasticsearchTemplate.clearScroll(scroll.getScrollId()); elasticsearchTemplate.clearScroll(scroll.getScrollId());
@ -2694,12 +2694,12 @@ public class ElasticsearchTemplateTests {
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("message", "message")) SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("message", "message"))
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build(); .withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
ScrolledPage<SampleEntity> scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.startScroll(1000, ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000,
searchQuery, SampleEntity.class); searchQuery, SampleEntity.class);
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.continueScroll(scroll.getScrollId(), 1000, scroll = elasticsearchTemplate.continueScroll(scroll.getScrollId(), 1000,
SampleEntity.class); SampleEntity.class);
} }
elasticsearchTemplate.clearScroll(scroll.getScrollId()); elasticsearchTemplate.clearScroll(scroll.getScrollId());
@ -2726,11 +2726,11 @@ public class ElasticsearchTemplateTests {
.withSourceFilter(sourceFilter) .withSourceFilter(sourceFilter)
.build(); .build();
ScrolledPage<SampleEntity> scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class); ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
List<SampleEntity> sampleEntities = new ArrayList<>(); List<SampleEntity> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) { while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent()); sampleEntities.addAll(scroll.getContent());
scroll = (ScrolledPage<SampleEntity>) elasticsearchTemplate.continueScroll(scroll.getScrollId() , 1000, SampleEntity.class); scroll = elasticsearchTemplate.continueScroll(scroll.getScrollId() , 1000, SampleEntity.class);
} }
elasticsearchTemplate.clearScroll(scroll.getScrollId()); elasticsearchTemplate.clearScroll(scroll.getScrollId());
assertThat(sampleEntities.size(), is(equalTo(3))); assertThat(sampleEntities.size(), is(equalTo(3)));