Эластичная поисковая комбинация фильтров - PullRequest
0 голосов
/ 05 сентября 2018

Наша проблема в том, что у нас есть несколько похожих записей несколько раз, и мы хотим считать их только один раз.

Таблица:
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

Я хотел бы получить ->

Audi A7: 1
BMW M2: 1

Возможно ли это?

1 Ответ

0 голосов
/ 05 сентября 2018

Вы должны использовать термины агрегации. В вашем случае это будет выглядеть так:

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
            }
        ]
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...