gpt4 book ai didi

elasticsearch - 如何在嵌套复合聚合中排除术语

转载 作者:行者123 更新时间:2023-12-03 01:30:51 24 4
gpt4 key购买 nike

我在Elasticsearch中的嵌套字段上使用复合聚合,但是我想从结果中排除一些术语。

此聚合有效:

{
"size": 0,
"geo": {
"communication": {
"nested": {
"path": "geo"
},
"aggs": {
"table": {
"composite": {
"size": 1000,
"sources": [
{"stk1": {"terms": {"field": "geo.src"}}},
{"stk2": {"terms": {"field": "geo.dest"}}}
]
}
}
}
}
}
}

但是我想从stk2中排除一些术语,
{
"size": 0,
"aggs": {
"geo": {
"nested": {
"path": "geo"
},
"aggs": {
"table": {
"composite": {
"size": 1000,
"sources": [
{"stk1": {"terms": {"field": "geo.src"}}},
{"stk2": {"terms": {"field": "geo.dest", "exclude":"cancel"}}}
]
}
}
}
}
}
}


上面的查询不起作用。

更新1:结果应只省略数组元素,而不是整个包含“取消”的文档。

我正在使用 flex v6.7

最佳答案

我建议使用查询来排除这些文档:

{
"size": 0,
"aggs": {
"geo": {
"nested": {
"path": "geo"
}
},
"aggs": {
"filter": {
"bool": {
"must_not": {
"prefix": {
"geo.dest": "cancel"
}
}
}
},
"aggs": {
"table": {
"composite": {
"size": 10,
"sources": [
{
"stk1": {
"terms": {
"field": "geo.src"
}
}
},
{
"stk2": {
"terms": {
"field": "geo.dest"
}
}
}
]
}
}
}
}
}
}

关于elasticsearch - 如何在嵌套复合聚合中排除术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56059780/

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