java es scroll_es java scroll滚动查询

/**

* 滚动查询

*/

@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

es中的滚动查询并不能实现分页,它只是滚动输出

欢迎关注我的微信公众号,会同步更新python、java、算法等相关内容!!!

你可能感兴趣的:(java,es,scroll)