版本 : spring-data-elasticsearch-2.1.8.RELEASE.jar
public List<Long> searchIds(Param requestPageParam, Pageable pageRequest) {
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(EsRepository.searchConditonQueryBuilder(requestPageParam))
.withIndices("index")
.withTypes("type")
.withPageable(new PageRequest(0, 1000)).build();
String scrollId = elasticsearchTemplate.scan(searchQuery, 1000*60, false);
List<Long> ids = new ArrayList<Long>();
boolean hasRecords = true;
while (hasRecords) {
Page<EsEntity> page = elasticsearchTemplate.scroll(scrollId, 1000*60, EsEntity.class);
if (page.hasContent()) {
page.getContent().forEach(item -> ids.add(item.getId()));
} else {
hasRecords = false;
}
}
elasticsearchTemplate.clearScroll(scrollId);
return ids;
}