弹性搜索过滤器组合

时间:2018-09-05 13:13:18

标签: sql elasticsearch elasticsearch-5

我们的问题是,我们多次有一些相似的条目,并且只想计算一次。

表格:
car name|inserted_by_user|insert_date Audi A7|0123|22.01.2016 Audi A7|0290|24.01.2016 Audi A7|0290|24.01.2016 BMW M2|0290|25.01.2016 Audi A7|0290|29.01.2016

我想得到->

奥迪A7:1
宝马M2:1

有可能吗?

1 个答案:

答案 0 :(得分:0)

您应该使用术语汇总。在您的情况下,它看起来像这样:

GET /_search
{
    "aggs" : {
       "car_names" : {
           "terms" : { "field" : "car_name" }
        }
    }
}

响应应采用以下模式:

...
"aggregations" : {
    "car_names" : {
        "doc_count_error_upper_bound": 0, 
        "sum_other_doc_count": 0, 
        "buckets" : [ 
            {
                "key" : "Audi A7",
                "doc_count" : 6
            },
            {
                "key" : "BMW M2",
                "doc_count" : 1
            }
        ]
    }
}