一尘不染

如何在Elasticsearch中排序然后应用限制过滤器

elasticsearch

我想根据特定字段对结果进行排序,然后应用限制过滤器。

一个简单的常见示例是一个SQL查询,例如select name from users order by name limit 100返回的排序结果限制为100。

我在Elasticsearch中尝试了相同的方法。但是,这没有发生。它首先应用限制,然后进行排序,这给了我不希望的结果。谁能指出我做错了什么?这是我当前正在使用的查询。

{
  "sort": [
    "full_name"
  ],
  "filter": {
    "limit": {
      "value": 100
    }
  }
}

阅读 255

收藏
2020-06-22

共1个答案

一尘不染

限制过滤器首先在每个分片上工作,然后在一个节点上合并结果。如果您有多个分片,那么可能会产生有趣的结果。我认为,正如Gabbar已经提到的那样,您正在寻找的是“大小”参数。

2020-06-22