Elasticsearch在Java中使用Scroll api
我试着在这里使用这个例子: 介绍如何在elasticsearch中与java一起使用scroll。 代码如下:Elasticsearch在Java中使用Scroll api,java,elasticsearch,Java,elasticsearch,我试着在这里使用这个例子: 介绍如何在elasticsearch中与java一起使用scroll。 代码如下: QueryBuilder qb = termQuery("multi", "test"); SearchResponse scrollResp = client.prepareSearch("test") .addSort(FieldSortBuilder.DOC_FIELD_NAME, SortOrder.ASC) .setScroll(new T
QueryBuilder qb = termQuery("multi", "test");
SearchResponse scrollResp = client.prepareSearch("test")
.addSort(FieldSortBuilder.DOC_FIELD_NAME, SortOrder.ASC)
.setScroll(new TimeValue(60000))
.setQuery(qb)
.setSize(100).get(); //max of 100 hits will be returned for each scroll
//Scroll until no hits are returned
do {
for (SearchHit hit : scrollResp.getHits().getHits()) {
//Handle the hit...
}
scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(new TimeValue(60000)).execute().actionGet();
} while(scrollResp.getHits().getHits().length != 0); // Zero hits mark the end of the scroll and the while loop.
尽管由于某些原因,我有一个错误,它表示RestHighLevelClient类型的方法prepareSearch(String)未定义。
我的client
变量确实是RestHighLevelClient
,但在本教程中它应该是这样的
ant认为问题出在哪里?RestHighLevelClient的工作方式与TransportClient不同 如果希望将scroll与RestHighLevelClient一起使用,必须遵循以下步骤: 1) 创建一个: 2) 执行第一次搜索:
SearchResponse scrollResp = client.search(sreq);
这里的客户机是RestHighLevelClient
3) 对于后续滚动搜索,请创建SearchScroll请求,然后将其用于滚动:
scrollResp = client.searchScroll(new SearchScrollRequest(scrollResponse.getScrollId()).scroll(new TimeValue(60000)));
有关更多信息,请参阅:elasticsearch 6中有两个API
scrollResp = client.searchScroll(new SearchScrollRequest(scrollResponse.getScrollId()).scroll(new TimeValue(60000)));