代码之家  ›  专栏  ›  技术社区  ›  Karthikeyan KR

聚合中的elasticsearch排序不起作用

  •  0
  • Karthikeyan KR  · 技术社区  · 6 年前

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

    它正在工作,但输出与我从数据库查询中得到的结果不同。

    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": "(*:*) "
            }
        }
    }
    

    输出:

    “域_agg”:{ “其他单据总数”:1442, { “单据计数”:2, “域\存储\计数\总和”:{ “价值”:11258 } }, { “单据计数”:3, “价值”:6795 } }, “密钥”:“aldi.us”, “单据计数”:2, } }, { “单据计数”:2, “价值”:566 }, { “密钥”:“ajg.com”, “域\存储\计数\总和”:{ “价值”: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'
    

    0 回复  |  直到 6 年前
        1
  •  0
  •   marc_s    6 年前

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

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

    "query": {
            "query_string": {
                "query": "(*:*) "
            }
        }