Elasticsearch,如何返回两个字段的唯一值

epi*_*pko 5 distinct elasticsearch

我有一个包含 20 个不同字段的索引。我需要能够提取独特的文档,其中“cat”和“sub”字段的组合是独一无二的。在 SQL 中,它看起来是这样的:从表 A 中选择唯一的猫,子;我可以通过这种方式为一个领域做到这一点:

{
"size": 0,
"aggs" : {
    "unique_set" : {
        "terms" : { "field" : "cat" }
    }
}}
Run Code Online (Sandbox Code Playgroud)

但是如何添加另一个字段来检查两个字段的唯一性?

谢谢,

小智 1

解决这个问题的唯一方法可能是嵌套聚合:

{
"size": 0,
    "aggs" : {
        "unique_set_1" : {

            "terms" : {
                     "field" : "cats"
            },
            "aggregations" : { 
                "unique_set_2": {
                    "terms": {"field": "sub"}
                }
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)