首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch:带有子聚合的has_child查询--桶计数是错误的

Elasticsearch:带有子聚合的has_child查询--桶计数是错误的
EN

Stack Overflow用户
提问于 2015-08-13 01:46:25
回答 1查看 4.4K关注 0票数 5

我正在尝试根据孩子中的匹配来查找父母,并为匹配检索孩子的术语聚合。出于某种原因,用于孩子聚合的桶计数显示出比实际结果更高的计数(如果它在特定的子桶中显示父母或孩子的计数,我会很高兴)。

该查询类似于以下内容(注意:我使用过滤的查询,因为我稍后将在查询之外添加一个过滤器):

代码语言:javascript
复制
{
"query" : {
    "filtered" : {
        "query" : {
            "has_child" : {
            "type" : "blog_tag",
            "query" : {
                "filtered" : {
                    "query" : {
                        "term" : {
                            "tag" : "something"
                        }
                    }
                }
            }
        }
    }
},
"aggs" : {
    "my_children" : {
        "children" : {
            "type" : "my_child_type"
        },
        "aggs" : {
            "field_name" : {
                "terms" : {
                    "field" : { "blog.blog_tag.field_name" }
                }
            }
        }
    }
}     

}

正确的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-14 20:24:55

正如评论中所指出的那样,这是一个问题。解决方案是使用查询过滤聚合,

代码语言:javascript
复制
"query" : {
    "filtered" : {
        "query" : {
            "has_child" : {
            "type" : "blog_tag",
            "query" : {
                "filtered" : {
                    "query" : {
                        "term" : {
                            "tag" : "something"
                        }
                    }
                }
            }
        }
    }
},
"aggs" : {
    "my_children" : {
        "children" : {
            "type" : "my_child_type"
        },
        "aggs" : {
            "results" : {
                "filter" : {
                    "query" : {
                        "filtered" : {
                            "query" : {
                                "term" : {
                                    "tag" : "something"
                                }
                            }
                        }
                    }
                },
                "aggs" : {
                    "field_name" : {
                        "terms" : {
                            "field" : { "blog.blog_tag.field_name" }
                       }
                    }
                }
            }
        }
    }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31978202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档