elasticsearch - 嵌套计数查询

标签 elasticsearch

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

基本上获得所有结果+ 4或5个“计数”,它们在某种程度上类似于SQL的“group by”。
这样做的目的是允许对数据库中的所有客户端进行全文搜索(不进行过滤),同时显示其中有多少是 Activity 客户端,过去的客户端,潜在客户等。

有什么方法可以执行此操作而无需运行其他/单独的查询?

与答案一起编辑:

聚合是必经之路。这是我的操作方式,它是如此简单明了,以至于我期望更加艰辛!

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

}

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

最佳答案

我相信您正在寻找的是aggregation query

文档应该足够清晰,但是如果您遇到困难,请给我们您的ES查询,我们将在此为您提供帮助。

关于elasticsearch - 嵌套计数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42118045/

相关文章:

elasticsearch - Elasticsearch部分查询

elasticsearch - 流利的日志充满了反斜杠,并且kibana没有显示k8s pod日志

python - Elasticsearch DSL 中动态生成的 DocType

laravel - 为什么我使用 Laravel 和 Docker 得到 "No alive nodes found in your cluster"?

elasticsearch - 使elasticsearch返回具有所有字段的对象

elasticsearch - 如何从 ElasticSearch 中绝对删除某些内容?

elasticsearch - 如何为摄取附件 elasticsearch 插件禁用 base64 存储?

elasticsearch - IllegalStateException 混合字段类型

elasticsearch - 备份和还原Elasticsearch索引的一些记录

elasticsearch - Elasticsearch:如何使用OR条件查询数组字段?