/** * 滚动查询 */ @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------------"); }