弹性agfregations获得uniq值where子句

时间:2016-12-23 05:11:02

标签: elasticsearch aggregation

我在弹性搜索中有一个查询来获取特定字段的唯一值。 如何使用where子句获取唯一值。 其中field1:xyz,field2:yzx等

{
"size": 20,
"aggs" : {
    "pf" : {
        "terms" : { "field" : "platform" }
    }
}}

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找带过滤器的聚合

{
    "size":0, // <-- If you are using ES 2.0 or above, setting size=0 will only return aggregations and no results
    "query": {
        "filtered": {
            "query": {
                "match_all": {}
            },
            "filter": {
                "bool": {
                    "must": [{
                        "term": {
                            "field1": "xyz"
                        }
                    }, {
                        "term": {
                            "field2": "abc"
                        }
                    }]
                }
            }
        }
    },
    "aggregations": {
        "pf": {
            "terms": {
                "field": "platform"
            }
        }
    }
}