一尘不染

Elasticsearch计算忽略空格的术语

elasticsearch

使用ES 1.2.1

我的聚集

{
    "size": 0,
    "aggs": {
        "cities": {
            "terms": {
                "field": "city","size": 300000
            }
     }
 }

}

问题是某些城市名​​称中包含空格,并分别汇总。

例如洛杉矶

{
    "key": "Los",
    "doc_count": 2230
},
{
    "key": "Angeles",
    "doc_count": 2230
},

我认为这与分析仪有关吗?我将使用哪一个不分割空格?


阅读 458

收藏
2020-06-22

共1个答案

一尘不染

对于要对其进行聚合的字段,我建议您使用关键字分析器,或者根本不分析该字段。从关键字分析器文档中:

类型为关键字的分析器,可将整个流“标记为”单个标记。这对于诸如邮政编码,ID之类的数据很有用。注意,在使用映射定义时,将字段简单标记为not_analyzed可能更有意义。

但是,如果您仍要对该字段执行分析以包括其他搜索,请考虑使用ES 1.x的字段设置,如field /
multi_field文档中所述
。这将使您拥有一个用于搜索的字段值和一个用于聚合的字段值。

2020-06-22