忽略大小写合并具有相同名称的桶
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()"
}
}
}
}
希望对您有所帮助。
好的,我终于找到了一种方法:
- 转到 Kibana "Settings" 选项卡
- 选择索引模式进行配置
- 选择要配置的字段,例如
level
- 在"Format"select
String
- 在"Transform"select
Upper Case
- 点击
Update Field
按钮确认
现在,当我构建大多数可视化时,"INFO"
和 "info"
被认为是相同的并被合并。
但是 table 视图仍然继续将它们视为不同的,即使它们都显示为 "INFO"
!
有一个 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()"
}
}
}
}
希望对您有所帮助。
好的,我终于找到了一种方法:
- 转到 Kibana "Settings" 选项卡
- 选择索引模式进行配置
- 选择要配置的字段,例如
level
- 在"Format"select
String
- 在"Transform"select
Upper Case
- 点击
Update Field
按钮确认
现在,当我构建大多数可视化时,"INFO"
和 "info"
被认为是相同的并被合并。
但是 table 视图仍然继续将它们视为不同的,即使它们都显示为 "INFO"
!