@Test
//比较适合用分页
public void testElasticSpeed01() {
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(matchAllQuery())
.withIndices("new_report_system")
.withTypes("payment_report")
.withPageable(PageRequest.of(0, 5000))
.build();
Page<PaymentReportModel> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, PaymentReportModel.class);
String scrollId = ((ScrolledPage) scroll).getScrollId();
List<PaymentReportModel> sampleEntities = new ArrayList<>();
while (scroll.hasContent()) {
sampleEntities.addAll(scroll.getContent());
scrollId = ((ScrolledPage) scroll).getScrollId();
scroll = elasticsearchTemplate.continueScroll(scrollId, 1000, PaymentReportModel.class);
}
elasticsearchTemplate.clearScroll(scrollId);
}
@Test
//比较适合查全部数据
public void testElasticSpeed02() {
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(matchAllQuery())
.withIndices("new_report_system")
.withTypes("payment_report")
.withPageable(PageRequest.of(0, 5000))
.build();
CloseableIterator<PaymentReportModel> stream = elasticsearchTemplate.stream(searchQuery, PaymentReportModel.class);
List<PaymentReportModel> sampleEntities = new ArrayList<>();
while (stream.hasNext()) {
sampleEntities.add(stream.next());
}
}