【发布时间】:2016-04-13 16:50:45
【问题描述】:
我有一个包含三种文档类型的索引:
- Lead - 拥有、ID 和类型(Account 的子级)
- 帐户 - 有一个 ID
- 付款 - have 和 id、type 和 account_id(Account 的子级)
他们都是亲子关系。 我想获取有关我拥有哪些潜在客户类型的统计信息(按类型分组),然后计算我拥有多少这种特定类型的付款。
我来到这个查询,但我无法按父类型过滤子聚合。
查询到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 类型正在进行另一个聚合,我无法反转此查询。
任何帮助将不胜感激
【问题讨论】:
-
您能否提供一些示例数据和预期结果,这样可以更容易有人提供帮助。
标签: elasticsearch