Я использую агрегирование для группировки поля на основе суммы другого поля.
Это работает, но вывод не похож на тот, который я получаю из запроса к базе данных.
ES-запрос:
{
"from": 0,
"size": 0
,
"aggs": {"domain_agg": {
"terms": {
"field": "domain_name.keyword"
},
"aggs": {
"domain_store_count_sum": {
"sum": {
"field": "store_count"
}
},
"domain_store_count_agg": {
"bucket_sort": {
"sort": [
{
"domain_store_count_sum": {
"order": "desc"
}
}
],
"size": 5
}
}
}
}
},
"query": {
"query_string": {
"query": "(*:*) "
}
}
}
выход:
"domain_agg": {
"doc_count_error_upper_bound": 9,
"sum_other_doc_count": 1442,
"ведра": [
{
"ключ": "advanceautoparts.com",
"doc_count": 2,
"domain_store_count_sum": {
«значение»: 11258
}
},
{
"ключ": "tesla.com",
"doc_count": 3,
"domain_store_count_sum": {
«значение»: 6795
}
},
{
"ключ": "aldi.us",
"doc_count": 2,
"domain_store_count_sum": {
«Значение»: 3678
}
},
{
"ключ": "alamo.com",
"doc_count": 2,
"domain_store_count_sum": {
«значение»: 566
}
},
{
"ключ": "ajg.com",
"doc_count": 2,
"domain_store_count_sum": {
«значение»: 440
}
}
]}
Но когда я запустил то же самое в базе данных, я получил другой вывод.
Запрос БД:
SELECT domain_name, SUM(store_count) AS store_count
FROM table
GROUP BY domain_name order by store_count desc
Выход:
'subway.com','57384'
'bmoharris.com','56876'
'peets.com','37472'
'citibank.com','32348'
'shell.us','23016'
Почему я получаю разные результаты в эластичном поиске, хотя у обоих одинаковые данные.