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

Merge buckets with same name ignoring case

有一个 level 分析字段 的值类似于 "INFO""WARN""ERROR"...

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

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

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

是否可以在不触及 ElasticSearch 级别的此字段的 标记化 的情况下实现此行为?

可以通过scripting实现。虽然不推荐 scripting 因为它会使查询非常慢,但是如果你想在不触及 tokenization 的情况下获得结果,你可以使用下面的查询。

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

  }
}

希望对您有所帮助。

好的,我终于找到了一种方法:

  1. 转到 Kibana "Settings" 选项卡
  2. 选择索引模式进行配置
  3. 选择要配置的字段,例如level
  4. "Format"selectString
  5. "Transform"selectUpper Case
  6. 点击 Update Field 按钮确认

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

但是 table 视图仍然继续将它们视为不同的,即使它们都显示为 "INFO"!