Lucen / Elasticsearch:对具有多个值的字段的查询

时间:2016-05-29 18:21:37

标签: java elasticsearch lucene

这是我想做的。我在Elasticsearch中有一个包含多个文档的索引。在每个文档中,我有两个字段:deviceField(设备名称)和pressionField(周期性压力值)。我想在我的索引中查询每台设备的平均压力。您是否知道在单个查询中执行此操作的方法?实际上,我不想为每个deviceName的查询做一个'for'循环。由于我拥有数百万台设备,因此需要花费太多时间。

感谢您的关注和帮助。

取值

1 个答案:

答案 0 :(得分:1)

您必须使用指标聚合。如果要在同一查询中列出所有内容,请使用子聚合

{
    "aggs" : {
        "devices" : {
            "terms" : { "field" : "deviceField" },
             "aggs" : {
                "avg_pression" : { "avg" : { "field" : "pressionField" } }
           }
        }
    }
}

以下是文档链接:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-avg-aggregation.html