在 Kibana 上过滤方括号
Filter square brackets on Kibana
我很难在 Kibana 中过滤我的日志消息中的方括号。
假设我有消息:
[BOOK] The Book 32 was sold
Exception on buying BOOK
而且我只想过滤完全 [BOOK]
的消息(所以我应该只得到第一个)。
我尝试过使用我能想到的各种转义来过滤自由文本:
[BOOK]
"[BOOK]"
\[BOOK\]
"\[BOOK\]"
\[BOOK\]
还尝试按消息字段过滤:
message: [BOOK]*
message: "[BOOK]*"
message: \[BOOK\]*
message: "\[BOOK\]*"
但 Kibana 似乎只是简单地忽略了方括号并且总是同时显示这两个消息,只突出显示 BOOK
单词。
如何强制它搜索 []
?
如果您的 message
字段是经过分析的文本,则分析器会删除括号。您应该 运行 针对关键字数据类型进行查询。更准确地说,您需要 运行 针对关键字数据类型的正则表达式,例如 prefix
或 wildcard
查询。
我们假设 message
的映射是 keyword
。如果 [BOOK]
始终位于日志消息的开头,则有效查询如下:
{ "query": {
"prefix": {
"message": "[BOOK]"
}
}}
如果您想在 message
值的任何部分搜索 [BOOK]
,那么您需要这样的内容:
{ "query": {
"wildcard": {
"message": "*[BOOK]*"
}
}}
我很难在 Kibana 中过滤我的日志消息中的方括号。 假设我有消息:
[BOOK] The Book 32 was sold
Exception on buying BOOK
而且我只想过滤完全 [BOOK]
的消息(所以我应该只得到第一个)。
我尝试过使用我能想到的各种转义来过滤自由文本:
[BOOK]
"[BOOK]"
\[BOOK\]
"\[BOOK\]"
\[BOOK\]
还尝试按消息字段过滤:
message: [BOOK]*
message: "[BOOK]*"
message: \[BOOK\]*
message: "\[BOOK\]*"
但 Kibana 似乎只是简单地忽略了方括号并且总是同时显示这两个消息,只突出显示 BOOK
单词。
如何强制它搜索 []
?
如果您的 message
字段是经过分析的文本,则分析器会删除括号。您应该 运行 针对关键字数据类型进行查询。更准确地说,您需要 运行 针对关键字数据类型的正则表达式,例如 prefix
或 wildcard
查询。
我们假设 message
的映射是 keyword
。如果 [BOOK]
始终位于日志消息的开头,则有效查询如下:
{ "query": {
"prefix": {
"message": "[BOOK]"
}
}}
如果您想在 message
值的任何部分搜索 [BOOK]
,那么您需要这样的内容:
{ "query": {
"wildcard": {
"message": "*[BOOK]*"
}
}}