Elasticsearch 计数项忽略空格

标签 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
},

我想这与分析器有关?我会使用哪一个来不按空格拆分?

最佳答案

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

An analyzer of type keyword that "tokenizes" an entire stream as a single token. This is useful for data like zip codes, ids and so on. Note, when using mapping definitions, it might make more sense to simply mark the field as not_analyzed.

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

关于Elasticsearch 计数项忽略空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24189381/

相关文章:

elasticsearch - Elasticsearch 日期的确切范围

elasticsearch - 将聚合限制在 elasticsearch 中的前 X 命中

c# - 如何使我的代码诊断语法节点操作对已关闭的文件起作用?

symfony - elasticsearch返回 “Unassigned”

java - 在 Elasticsearch 中查找术语的出现

solr - 搜索软件/服务器的替代方法以检索所有匹配文档的 ID

java - ElasticSearch 聚合 - 获取时间序列中最大直方图值的确切时间

elasticsearch - 如何创建时间戳增量的直方图?

SQLite:分析的缺点

java - 如何在 ElasticSearch 中添加分析器设置?