我有一个包含三种文档类型的索引:
他们都处于亲子关系中。 我想获得有关我拥有哪种潜在客户类型的统计数据(按类型分组),然后计算这种特定类型的付款数量。
我来到这个查询,但我无法按父类型过滤子聚合。
查询Lead
类型
{
"query": {
"match_all": {}
},
"aggs": {
"by_type": {
"terms": {
"field": "type"
},
"aggs": {
"payments_count": {
"filter": {
"and": [
{
"has_parent": {
"type": "account",
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"and": [
{
"has_child": {
"type": "payment",
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"and": [
{
"term": {
"type": ?????????
}
}
]
}
}
}
}
}
]
}
}
}
}
}
]
}
}
}
}
}
}
在上一个has_child过滤器中,我想知道如何通过它的父级lead.type
过滤子项,如下所示:
"filter": {
"and": [
{
"term": {
"type": "$lead.type"
}
}
]
}
此外,由于lead
类型上的其他聚合,我无法反转此查询。
非常感谢任何帮助
答案 0 :(得分:1)
您正在针对类型"引导"运行您的查询,所以如果你想过滤" lead.type",你应该把它作为第一个过滤器聚合,然后再进入它的父节点。
"payments_count": {
"filter": {
"and": [
{
"term": {
"type": "$lead.type"
}
},
{
"has_parent": {
...
也许我的查询也有帮助,因为它有点类似:Term Filter on a nested field called id does not work as expected