gpt4 book ai didi

Elasticsearch 获取 n 条有序记录,然后应用分组

转载 作者:行者123 更新时间:2023-12-03 01:02:42 25 4
gpt4 key购买 nike

这是我正在寻找的一个例子。假设我有一些购买记录。我想获取价格 > 50 美元的记录并按价格降序排列。我想将这些有序记录限制为 100,然后按邮政编码对它们进行分组。

最终结果应该有每个 zip 的命中计数,其中这些计数的总和将达到 100 条记录。

ES v2.1.1

最佳答案

“按邮政编码分组”是什么意思:

  • 只想知道组中的文档数量?
  • 以邮政编码作为与文档关联的键的哈希?

  • 如果 1:
    {
    "size": 100,
    "query": {
    "filtered": {
    "filter": {
    "range": {
    "price": {
    "gt": 50
    }
    }
    }
    }
    },
    "sort": {
    "price": "desc"
    },
    "aggs": {
    "by_zip_code": {
    "terms": {
    "field": "zip_code"
    }
    }
    }
    }

    如果是 2,您可以使用 top hits aggregations .但是,无法按价格排序(我们怎么能这样做?),默认情况下 Elasticsearch 使用 _count (检查 intrinsic sorts)。如果排序不是什么大问题,以下将起作用:
    {
    "size": 0,
    "query": {
    "filtered": {
    "filter": {
    "range": {
    "price": {
    "gt": 50
    }
    }
    }
    }
    },
    "sort": {
    "price": "desc"
    },
    "aggs": {
    "by_zip_code": {
    "terms": {
    "field": "zip_code",
    "size": 100
    },
    "aggs": {
    "hits": {
    "top_hits": {}
    }
    }
    }
    }
    }

    关于Elasticsearch 获取 n 条有序记录,然后应用分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35133785/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com