我正在努力过滤 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
field 是分析过的文本,然后括号被分析器删除。您应该针对关键字数据类型运行查询。更准确地说,您需要针对关键字数据类型运行正则表达式,例如 prefix
或 wildcard
询问。
让我们假设 message
的映射是 keyword
.如 [BOOK]
始终位于日志消息的开头,则有效查询如下:
{ "query": {
"prefix": {
"message": "[BOOK]"
}
}}
如果您想搜索
[BOOK]
在 message
的任何部分值,那么你需要类似的东西:{ "query": {
"wildcard": {
"message": "*[BOOK]*"
}
}}
关于elasticsearch - 在 Kibana 上过滤方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59634839/