我是Elasticsearch的新手。我对滚动API感到困惑http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-scroll.html
滚动不是用于实时用户请求的,而是用于处理大量数据,例如为了重新索引 将一个索引的内容复制到一个配置不同的新索引中。
我需要的是:
- 用户输入搜索短语,点击搜索按钮
- 程序在Elasticsearch中搜索结果的第一页
- 显示第一页的结果给用户,如果他点击"下一页"或跳转到另一个页面,程序显示该页的结果。
我发现以下两种方法:
SearchResponse scrollResp = client.prepareSearch("book")
.setTypes("children")
.setQuery(query)
.setSize(20).execute().actionGet();
SearchResponse scrollResp = client.prepareSearch("book")
.setTypes("children")
.setSearchType(SearchType.SCAN)
.setScroll(new TimeValue(60000))
.setQuery(query)
.setSize(20).execute().actionGet();
我应该用哪个?
谢谢你!
您应该使用from
和size
参数来控制分页,from
为起始索引,size
为每页的条目。
SearchResponse scrollResp = client.prepareSearch("book")
.setTypes("children")
.setQuery(query)
.setFrom(20)
.setSize(20).execute().actionGet();
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-from-size.html