php - 在 elasticaserch 中应用游标分页

标签 php elasticsearch lucene elastica

我是 elasticasearch 的新手,正在尝试应用在 facebook 和 twitter 上看到的光标 paginatoin 作为我的 api。

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

最佳答案

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

在 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 proprieties。

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

关于php - 在 elasticaserch 中应用游标分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29076107/

相关文章:

elasticsearch - 使用Nest,如何模拟包含ngram标记的_all字段?

Solr 更多类似内容 : Can I give Solr 5 document IDs and get more documents like these 5?

c# - 我需要导入什么命名空间才能获得 RavenDB 类型 'IndexQuery' ?

PHP 交替内容

php - codeigniter 错误日志文件仅显示通知错误但错误消息未显示在屏幕上

Elasticsearch 脚本 - undefined variable

elasticsearch - elasticsearch和kibana在不同机器上的设置

elasticsearch - Elasticsearch - 更像这个返回空结果的查询

php - 多个微服务 symfony 应用程序共享供应商文件夹

php - 动态 Bootstrap 轮播