通过设置的查询条数,滚动查询es,直到查出所有结果
- 首先定义
private static TimeValue timeValue = new TimeValue(1000000);
- 查询条件
QueryBuilders.disMaxQuery().add(QueryBuilders.termQuery("", ""));
- 查询代码
SearchRequestBuilder setQuery = esTransportClient.prepareSearch("索引名")
.setTypes("索引类型")
.setQuery(must)
.setFrom(0)
.setSize(10000)
.setScroll(timeValue)
;
SearchResponse actionGet = setQuery.execute().actionGet();
List<List<String>> list = new ArrayList<List<String>>();
while (true){
SearchHits hits = actionGet.getHits();
SearchHit[] hits2 = hits.getHits();
if (hits2.length < 1){
break;
}
for (SearchHit searchHit : hits2) {
Map<String, Object> map = searchHit.getSourceAsMap();
List<String> fullTextSeven = getFullTextSeven(map);
list.add(fullTextSeven);
}
String scrollID = actionGet.getScrollId();
actionGet = esTransportClient.prepareSearchScroll(scrollID)
.setScroll(timeValue).get();
}
System.out.println(list.size());