ES aggregations terms遇到的坑

问题链接:es aggregation时 聚合字段被拆分

在es中path存储的数据为 XX/SS/DD这种格式, 通过es的DSL语句进行聚合查询时:

{
    "from": 0,
    "size": 1,
    "query": {...},
    "aggregations": {
        "path": {
            "terms": {
                "field": "path"
            }
        }
    }
}

返回的结果会将XX/SS/DD拆分成 XX  SS  DD 这几种key值。但具体需求需要对XX/SS/DD进行分组。

解决方法:

更改索引,具体更改方法,在上方链接中strglee的回答中(再次感谢strglee),将该字段改成keyword后,DSL语句改成如下形式

{
    "from": 0,
    "size": 1,
    "query": {...},
    "aggregations": {
        "path": {
            "terms": {
                "field": "path.keyword"
            }
        }
    }
}

至此,返回的key值为XX/SS/DD 形式,不进行分词。


你可能感兴趣的:(ES)