gpt4 book ai didi

elasticsearch - Elasticsearch:聚合过滤后的嵌套对象以查找唯一值

转载 作者:行者123 更新时间:2023-12-03 00:53:49 25 4
gpt4 key购买 nike

我在Elasticsearch 5的每个文档中都有一组对象(标签):

{
"tags": [
{ "key": "tag1", "value": "val1" },
{ "key": "tag2", "value": "val2" },
...
]
}

现在,我想为某个标签键找到唯一的标签值。与此SQL查询类似的东西:
SELECT DISTINCT(tags.value) FROM tags WHERE tags.key='some-key'
到目前为止,我已经来到了这个DSL:
{
"size": 0,
"aggs": {
"my_tags": {
"nested": {
"path": "tags"
},
"aggs": {
"filter" : { "terms": { "tags.key": "tag1" } },
"aggs": {
"my_tags_values": {
"terms" : {
"field" : "tags.value",
"size": 9999
}
}
}
}
}
}
}

但是它向我显示了这个错误:
[terms] unknown field [tags.key], parser not found

这是解决问题的正确方法吗?谢谢你的帮助。

注意:我已经在映射中将 tags字段声明为嵌套字段。

最佳答案

你把那里的东西弄混了。您可能想添加一个filter聚合,但没有给它起任何名字:

{
"size": 0,
"aggs": {
"my_tags": {
"nested": {
"path": "tags"
},
"aggs": {
"my_filter": {
"filter": {
"terms": {
"tags.key": [
"tag1"
]
}
},
"aggs": {
"my_tags_values": {
"terms": {
"field": "tags.value",
"size": 9999
}
}
}
}
}
}
}
}

关于elasticsearch - Elasticsearch:聚合过滤后的嵌套对象以查找唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48153061/

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