【问题标题】:Wildcard search in Kibana for string text in message fieldKibana 中的通配符搜索消息字段中的字符串文本
【发布时间】:2021-01-03 15:44:24
【问题描述】:

我在 Kibana 的 message 字段中有以下纯文本字符串

留言:Request result. Request: amount=58289.540000, name=Raj, so on.....

当我使用 message: "Request Result" 在 Lucene 中搜索 Kibana 时,我得到了正确的匹配。

但我想使用像message: "Request Resu*" 这样的通配符进行搜索。这是否可以在不更改日志或 Kibana 索引的情况下实现?

编辑:

我认为“消息”是纯文本日志,当我搜索“amount=58289.540000,name=Raj”时,我得到了结果,但是当我搜索“amount=58289.540000,name=R”时,我没有得到任何结果。 Kibana 怎么知道这是一个偏值?

我猜消息不是纯文本?如何知道我在 Kibana GUI 中查看的日志类型是什么?

【问题讨论】:

    标签: elasticsearch kibana


    【解决方案1】:

    您想要实现的目标可能目前不可用,但您一定可以尝试一下

    您可以简单地将“Request Resu”放在查询栏中(不是“Message:”部分,也没有双引号)。

    1. “Request Resu”(不带引号)将返回消息字段包含 Request 或 Resu 或两者的每个文档
    2. “Request Resu”(带引号)将返回消息字段包含 Request 和 Resu 的每个文档,顺序相同。
    • 您不能在短语中使用通配符。
    • 下面提到的搜索查询(一个词)将按照要求工作。
      • 消息:请求resu*
      • 消息:?请求*
      • 消息:?req*
      • 消息:?resul

    特别注意:由于 Elasticsearch 将分析器应用于您的查询,如果您将通配符放在单词的开头/结尾,它可能看起来像是在短语中工作。 ——例如在您的情况下:消息:“Request Resu*”(带引号)仍将返回有关分析数据的两个文档,但是。这不是因为您的通配符按预期工作,而是因为分析器在分析查询时去掉了星号。该查询找不到值“Request Resuxxxxx”。

    您可能想通过此link 了解更多详情。

    【讨论】:

    • 所以通配符在这种情况下实际上是没有用的,因为无论有没有通配符在双引号中的纯文本搜索中的工作方式相同?
    • 我已经用更多细节更新了我的答案。请检查。
    • 我认为日志中的message 字段是纯文本,但可能不是。我已经编辑了问题
    • wokrs 完美无瑕@anki
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2017-07-19
      • 2020-08-30
      • 2018-08-08
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多