Elasticsearch计算忽略空格的术语

时间:2014-06-12 16:25:12

标签: elasticsearch aggregation analyzer

使用ES 1.2.1

我的聚合

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

}

问题是某些城市名​​称中包含空格并单独汇总。

例如洛杉矶

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

我认为它与分析仪有关?我会使用哪一个不拆分空格?

1 个答案:

答案 0 :(得分:9)

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

  

类型关键字的分析器"标记化"整个流作为单个令牌。这对于诸如邮政编码,ID等数据非常有用。请注意,使用映射定义时,将字段标记为not_analyzed可能更有意义。

但是,如果您仍希望对该字段执行分析以包含其他搜索,请考虑使用ES 1.x的字段设置,如field/multi_field documentation中所述。这将允许您具有搜索字段的值和聚合的字段值。