Kibana 上的过滤方括号

Joã*_*hin 8 elasticsearch kibana kibana-6

我正在努力过滤 Kibana 日志消息中的方括号。假设我有以下消息:

[BOOK] The Book 32 was sold
Exception on buying BOOK
Run Code Online (Sandbox Code Playgroud)

我想只过滤具有完全正确的消息[BOOK](所以我应该只得到第一个)。

我尝试过使用我能想到的各种转义来过滤自由文本:

[BOOK]
"[BOOK]"
\[BOOK\]
"\[BOOK\]"
\\[BOOK\\]

Run Code Online (Sandbox Code Playgroud)

还尝试按消息字段进行过滤:

message: [BOOK]*
message: "[BOOK]*"
message: \[BOOK\]*
message: "\[BOOK\]*"
Run Code Online (Sandbox Code Playgroud)

但 Kibana 似乎只是忽略了方括号,并且总是带来这两条消息,仅突出显示该BOOK单词。

我怎样才能强制它搜索[]

gle*_*ota 3

如果您的message字段是经过分析的文本,则分析器会删除括号。您应该针对关键字数据类型运行查询。更准确地说,您需要针对关键字数据类型(例如prefixwildcard查询)运行正则表达式。

我们假设 的映射messagekeyword。如果[BOOK]始终位于日志消息的开头,则有效的查询如下:

{ "query": {
  "prefix": {
    "message": "[BOOK]"
  }
}}
Run Code Online (Sandbox Code Playgroud)

相反,如果您想搜索[BOOK]该值的任何部分message,那么您将需要类似以下内容的内容:

{ "query": {
  "wildcard": {
    "message": "*[BOOK]*"
  }
}}
Run Code Online (Sandbox Code Playgroud)

  • 嗨若昂,很高兴这有效。然而,我写的内容与 Kibana(“只是”一个 UI)没有太大关系,而是与 Elasticsearch 相关。如果您打算花更多时间查询 Elasticsearch,我*完全*建议您阅读索引映射的概念 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html (3认同)
  • 感谢您的回答,@glencota。我对 Kibana 知之甚少,所以你说的对我来说没有多大意义。但是,我发现我的 kibana 提供了“message.keyword”字段。使用您的查询与此字段有效!谢谢!:D (2认同)