elasticsearch Kibana上的过滤器方括号,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6" /> elasticsearch Kibana上的过滤器方括号,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6" />

elasticsearch Kibana上的过滤器方括号

elasticsearch Kibana上的过滤器方括号,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6,我正在努力过滤Kibana中日志消息的方括号。 假设我有这些信息: [BOOK] The Book 32 was sold Exception on buying BOOK 而且我只想过滤具有确切[BOOK]的消息(因此我应该只得到第一条) 我尝试过用我能想到的各种转义来过滤自由文本: [BOOK] "[BOOK]" \[BOOK\] "\[BOOK\]" \\[BOOK\\] 并尝试按消息字段进行筛选: message: [BOOK]* message: "[BOOK]*" messag

我正在努力过滤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似乎只是忽略了方括号,总是同时带来这两条信息,只突出显示
单词


如何强制它搜索
[]

如果您的
消息
字段是经过分析的文本,则分析器会删除括号。您应该对关键字数据类型运行查询。更准确地说,您需要针对关键字数据类型运行regexp,例如
前缀
通配符
查询

让我们假设
消息
的映射是
关键字
。如果
[BOOK]
始终位于日志消息的开头,则有效的查询如下所示:

{ "query": {
  "prefix": {
    "message": "[BOOK]"
  }
}}
如果您想在
消息
值的任何部分中搜索
[BOOK]
,则需要以下内容:

{ "query": {
  "wildcard": {
    "message": "*[BOOK]*"
  }
}}

谢谢你的回答,格伦科塔。我对Kibana知之甚少,所以你说的话对我来说没有多大意义。但是,我发现我的kibana提供了字段
message.keyword
。使用此字段的查询成功!谢谢Dhi João,很高兴这起作用。然而,我所写的与Kibana(它“只是”一个UI)并没有太大关系,而是与Elasticsearch有关。如果您打算花更多时间查询Elasticsearch,我完全建议您阅读索引映射的概念