使用bool过滤器进行弹性搜索聚合

时间:2017-04-20 05:06:23

标签: elasticsearch

我有以下查询可以在Elasticsearch 2.x上正常使用但不适用于doc_count: 0(我得到{ "aggregations": { "events_per_period": { "filter": { "bool": { "must": [ { "terms": { "message.facility": [ "facility1", "facility2", "facility3" ] } } ] } } } }, "size": 0 } ),因为bool filter已被弃用。我不太清楚如何使用新的Bool Query重新编写此查询。

/usr/local/bin/python3.6 -m idlelib

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为您可能希望使用过滤器对多个字段进行聚合: - 这里我假设在facility1和facility2上对id和聚合进行过滤。

{
    "_source":false,
    "query": {
        "match": {
            "id": "value"
        }
    },
    "aggregations": {
        "byFacility1": {
            "terms": {
                "field": "facility1"
            },
            "aggs": {
                "byFacility2": {
                    "terms": {
                        "field": "facility2"
                    }
                }
            }
        }
    }
}

如果您想在三个字段上进行汇总,请检查link。 对于java实现link2