我需要根据嵌套属性过滤我的索引:
myNestedProperty: [
{ id: 1, displayName: toto },
{ id: 2, displayName: tata },
{ id: 3, displayName: titi }
]
myNestedProperty: [
{ id: 4, displayName: dodo },
{ id: 5, displayName: dada },
{ id: 6, displayName: didi }
]
我想算一下Toto有多少,有多少没有。我尝试使用以下查询:
"aggs": {
"HasToto": {
"filter": {
"nested": {
"path": "myNestedProperty",
"query": {
"match": {
"myNestedProperty.id": "1"
}
}
}
}
},
"NoToto": {
"filter": {
"nested": {
"path": "myNestedProperty",
"query": {
"bool": {
"must_not": [
{"match": {
"myNestedProperty.id": "1"
}}
]
}
}
}
}
}
}
" HasToto"似乎返回了预期的结果,但不是" NoToto" filter(返回的数据太多)。
规则:
"托托"只能在myNestedProperty中出现一次。如果我有" Toto",我就不能拥有" Dodo"或另一个。
它是一个分层对象:
- 托托
----塔塔郎
-------蒂蒂
由于它们的复杂性,我简化了数据,我希望用这个简单的对象足够清楚。
如何实现这一目标?提前谢谢。