gpt4 book ai didi

elasticsearch - 分组来自Elasticsearch的分组结果

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

我是Elasticsearch的 super 傻瓜新手
我在Elasticsearch上有一堆产品。每个elasticsearch记录都有title, pid, product_group, color, size, qty...等,还有更多字段
现在,当我执行请求时,我要执行的操作是将结果按pid分组,然后在响应的_group部分内,我也希望对这些结果按product_group进行分组。
换句话说,如果我有

pid: 1, product_group: 1, size: 1
pid: 1, product_group: 1, size: 2
pid: 1, product_group: 2, size: 1
pid: 1, product_group: 2, size: 2
pid: 2, product_group: 3, size: 1
pid: 2, product_group: 3, size: 2
pid: 2, product_group: 4, size: 1
pid: 2, product_group: 4, size: 2
我希望我的顶级搜索数组具有2个结果:pid1 1个,pid2 1个,然后在每个结果的内部,在json的 _group部分内部,我希望每个结果2个:pid1将有一个结果对于product_group 1和product_group 2,而pid2对于product_group 3和product_group 4将具有_group结果。
这可能吗?
目前,这就是我修改查询以基于pid对其进行分组的方式: group: {field: "pid", collapse: true}我真的不知道我是否要崩溃是对还是错,而且我也不知道如何或者是否有可能像我所要求的那样进行第二层分组。将不胜感激。

最佳答案

最直接的方法是使用子terms aggs:

{
"size": 0,
"aggs": {
"by_pid": {
"terms": {
"field": "pid"
},
"aggs": {
"by_group": {
"terms": {
"field": "product_group"
},
"aggs": {
"underlying_docs": {
"top_hits": {}
}
}
}
}
}
}
}
请注意,最后一个 aggs组是可选的-我将其放在此处,以防您想知道哪些文档已存储在哪个特定乐队中。

关于elasticsearch - 分组来自Elasticsearch的分组结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63414282/

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