/**
* 滚动查询
*/
@Test
public void scroll() {
SearchResponse response = client.prepareSearch("twitter").setTypes("tweet")
.addSort(SortBuilders.fieldSort("_doc"))
.setSize(10).setScroll(new TimeValue(2000)).execute()
.actionGet();
//获取总数量
long totalCount = response.getHits().getTotalHits();
int page = (int) totalCount / 10;//计算总页数,每次搜索数量为分片数*设置的size大小
System.out.println("totalCount:" + totalCount);
scrollOutput(response);
for (int i = 0; i < page; i++) {
//再次发送请求,并使用上次搜索结果的ScrollId
response = client.prepareSearchScroll(response.getScrollId())
.setScroll(new TimeValue(20000)).execute()
.actionGet();
scrollOutput(response);
}
}
public static void scrollOutput(SearchResponse response){
SearchHits hits = response.getHits();
System.out.println("-----------begin------------");
for (int j=0;j<hits.getHits().length;j++) {
try {
String id = hits.getHits()[j].getId();
System.out.println("第" + k + "条数据:" + id);
} catch (Exception e) {
e.printStackTrace();
}
k++;
}
System.out.println("-----------end------------");
}
---------------------
原文:https://blog.youkuaiyun.com/qq_34624315/article/details/81041340
es java scroll滚动查询
最新推荐文章于 2024-10-10 11:03:17 发布