gpt4 book ai didi

elasticsearch - 按字段值对文档进行分组

转载 作者:行者123 更新时间:2023-12-02 22:15:40 27 4
gpt4 key购买 nike

注意 这不是“如何获得不同值的计数”的问题。我想要文档,而不是计数。

假设我有这个映射:

country, color, height, weight

我已将这些文件编入索引:
1. RU, red, 180, 90
2. BY, green, 170, 80
3. BY, blue, 180, 75
4. KZ, blue, 180, 95
5. KZ, red, 185, 100
6. KZ, red, 175, 80
7. KZ, red, 170, 80

我想执行像 groupby(country, color, doc_limit=2) 这样的查询这将返回如下内容:
{
"RU": {
"red": [
(doc 1. RU, red, 180, 90)
],
},
"BY": {
"green": [
(doc 2)
],
"blue": [
(doc 3)
]
},
"KZ": {
"blue": [
(doc 4)
],
"red": [
(doc 5),
(doc 6)
]
}
}

每个存储桶中不超过 2 个文档。

我该怎么做?

最佳答案

这可以通过 terms aggregation 实现在 country字段,结合 terms color 上的子聚合字段然后最后一个 top_hits aggregation每个存储桶获得 2 个匹配的文档

{
"size": 0,
"aggs": {
"countries": {
"terms": {
"field": "country"
},
"aggs": {
"colors": {
"terms": {
"field": "color"
},
"aggs": {
"docs": {
"top_hits": {
"size": 2
}
}
}
}
}
}
}
}

关于elasticsearch - 按字段值对文档进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33651482/

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