滾動查詢
/** * 滾動查詢 */ @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.csdn.net/qq_34624315/article/details/81041340