我正在使用聚合来根据其他字段的总和对字段进行分组。
它正在工作,但输出与我从数据库查询获得的输出不相似。
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,“buckets”:[{“key”:“advanceautoparts.com”,“doc_count”:2,“domain_store_count_sum”:{“value”:11258} },{“key”:“tesla.com”,“doc_count”:3,“domain_store_count_sum”:{“value”:6795}},{“key”:“aldi.us”,“doc_count”:2,“ domain_store_count_sum“:{”value“:3678}},{”key“:”alamo.com“,”doc_count“:2,”domain_store_count_sum“:{”value“:566}},{”key“:”ajg。 com“,”doc_count“:2,”domain_store_count_sum“:{”value“: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'
为什么我在弹性搜索中得到不同的结果,而两者都有相同的数据。
您不必在主要agg中精确映射:
"field": "domain_name.keyword" => "field": "domain_name"
你应该删除查询部分。
"query": {
"query_string": {
"query": "(*:*) "
}
}