【问题标题】:Applying Cursors pagination in elasticaserch在 elasticaserch 中应用光标分页
【发布时间】:2015-05-18 12:35:54
【问题描述】:

我是 elasticasearch 的新手,并尝试将在 facebook、twitter 中看到的光标分页应用于我的 api。

有没有办法应用抛出过滤器,聚合我已经尝试了几个查询但是我可以保留文档顺序的问题,任何帮助将不胜感激?

【问题讨论】:

标签: php elasticsearch lucene elastica


【解决方案1】:

光标分页背后的想法是用作指针。

在 ElasticSearch 中,您有 _search 方法,您可以在其中使用滚动属性。此方法将根据大小对文档进行分组。

GET /<index>/_search?scroll=<ttl, example: 1m>
{
  "query": {
    <parameters>
  },
  "size": <integer, example: 1000>,
}

对于下一个文档切片,您将使用 _search 方法,但只能使用 scroll 和 scroll_id 属性。在内部,ES 将只返回下一个文档切片,而不重新计算文档。

GET /_search/scroll
{
  "scroll": <ttl, example: 1m>,
  "scroll_id": <scroll_id hash>
}

由于性能限制,您应该避免使用 size 和 from 属性。

看看:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#request-body-search-scroll

【讨论】:

    【解决方案2】:

    您可以通过from and size parameters进行分页:

    {
        "from" : 0, "size" : 10,
        "query" : {
            "term" : { "user" : "kimchy" }
        }
    }
    

    【讨论】:

    • 这种分页方式是否可以处理分页中新数据进入或记录被删除的情况?
    猜你喜欢
    • 2015-10-26
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 2013-06-18
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2022-10-09
    相关资源
    最近更新 更多