嵌套计数查询

时间:2017-02-08 16:06:29

标签: elasticsearch

我希望为现有查询添加功能。基本上,我运行一个返回说1000个文档的查询。这些文件都具有相同的结构,只有某些字段的值不同。我想要的是,不仅要获得完整列表作为结果,还要计算有多少结果的字段X的值为Y,有多少结果具有相同的字段X和值Z等。

基本上得到所有结果+ 4或5"计数"在某种程度上,它会像SQL" group by"一样。 这一点是允许对我们数据库中的所有客户端进行全文搜索(无需过滤),同时显示其中有多少是活跃客户,过去客户,活跃潜在客户等...

如果不运行其他/单独的查询,是否可以这样做?

用答案编辑:

聚合是要走的路。这就是我如何做到的,它是如此简单,以至于我预计会有更多的工作!

{
"query": {
    "term": {
        "_type":"client"
    }
},
"aggregations" : {
    "agg1" : {
        "terms" : {
            "field" : "listType.typeRef.keyword"
        }
    }
}

}

请注意,它甚至在一个术语列表中,而不是一个字段,这就是多么容易!

1 个答案:

答案 0 :(得分:1)

我相信你要找的是aggregation query

文档应该足够清晰,但是如果您有困难,请向我们提供您的ES查询,我们将从那里为您提供帮助。