合并具有相同名称的桶忽略大小写

时间:2016-02-08 17:18:26

标签: elasticsearch kibana kibana-4

有一个level 分析字段,其值为"INFO""WARN""ERROR" ...

有时值可以像"info"一样小写。

当我在 Kibana 中执行简单的条款聚合时,会创建2个存储桶:一个用于"INFO",另一个用于"info"

我已经指定CASE_INSENSITIVE标志但没有成功。

是否可以在 ElasticSearch 级别触及此字段的标记化时获得此行为?

2 个答案:

答案 0 :(得分:1)

您可以通过scripting实现这一目标。虽然不建议使用scripting,因为它会使查询速度变慢,但如果您希望在不触及tokenization的情况下获得结果,则可以使用以下查询。

{
"aggs" : {
    "group_level_ignore_case" :{
    "terms"   : {
        "script" : "doc['level'].value.toLowerCase()"   
    }
    }

  }
}

希望这有帮助。

答案 1 :(得分:0)

好的,我终于找到了办法:

  1. 转到Kibana “设置”标签
  2. 选择索引模式进行配置
  3. 选择要配置的字段,例如level
  4. “格式”选择String
  5. “转化”中选择Upper Case
  6. 点击Update Field按钮
  7. 确认

    现在,当我构建大多数可视化时,"INFO""info"被认为是相同的并且已合并。

    但是表格视图仍然会继续认为它们是不同的,即使它们都显示为"INFO"

相关问题