Elasticsearch:搜索和显示结果给用户,滚动API



我是Elasticsearch的新手。我对滚动API感到困惑http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-scroll.html

滚动不是用于实时用户请求的,而是用于处理大量数据,例如为了重新索引 将一个索引的内容复制到一个配置不同的新索引中。

我需要的是:

  1. 用户输入搜索短语,点击搜索按钮
  2. 程序在Elasticsearch中搜索结果的第一页
  3. 显示第一页的结果给用户,如果他点击"下一页"或跳转到另一个页面,程序显示该页的结果。

我发现以下两种方法:

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();  

我应该用哪个?

谢谢你!

您应该使用fromsize参数来控制分页,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

最新更新