弹性搜索在聚合中排序不起作用

问题描述 投票:0回答:1

我正在使用聚合来根据其他字段的总和对字段进行分组。

它正在工作,但输出与我从数据库查询获得的输出不相似。

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'

为什么我在弹性搜索中得到不同的结果,而两者都有相同的数据。

postgresql elasticsearch
1个回答
0
投票

您不必在主要agg中精确映射:

"field": "domain_name.keyword" => "field": "domain_name"

你应该删除查询部分。

"query": {
        "query_string": {
            "query": "(*:*) "
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.