【发布时间】:2022-02-22 22:06:24
【问题描述】:
我在 Elastic Search 上有一个索引,大多数记录都有字段 foo,有些可能没有。
我想通过聚合了解所有记录是否都有字段foo。
案例一:
id = 0, foo = 1, bar = 1
进行这样的聚合会给我fooContainsNull = false,因为所有记录都包含foo
案例2:
id = 0, foo = 1, bar = 1
id = 1, bar = 1
进行这样的聚合会给我fooContainsNull = true,因为其中一条记录(id = 1)没有foo
我尝试使用过滤聚合
"aggregations": {
"fooContainsNull": {
"filter": {
"bool": {
"not": {
"exists": {
"field": "foo"
}
}
}
}
}
}
但是bool 和not 似乎不能一起使用。
如何使用 Elastic Search 聚合来实现这一点?
【问题讨论】:
标签: elasticsearch