elasticsearch 在Kibana中对消息字段中的字符串文本进行通配符搜索

cld4siwp  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(269)

我在Kibana的message字段中有以下纯文本字符串
消息:Request result. Request: amount=58289.540000, name=Raj, so on.....
在Lucene的Kibana搜索中,当我使用message: "Request Result"时,我得到了正确的匹配。
但我想使用通配符如message: "Request Resu*"搜索。这是可能的,没有任何改变的日志或Kibana索引?

编辑:

我以为“message”是一个纯文本日志,当我搜索“amount=58289.540000,name=Raj”时,我得到了结果,但当我搜索“amount=58289.540000,name=R”时,我没有得到任何结果。Kibana如何知道这是一个部分值?
我猜消息不是纯文本?我怎么能知道我在Kibana GUI中查看的日志类型是什么?

tyg4sfes

tyg4sfes1#

您尝试实现的功能目前可能还无法实现,但您可以尝试将Request Resu放在查询栏中(不带“Message:“部分,也不带双引号)。

  • Request Resu(不带引号)将返回消息字段包含Request或Resu或两者的每个文档。
  • "Request Resu"(带引号)将返回消息字段中包含Request和Resu的所有文档,其中Request和Resu的顺序相同。
  • 您不能在短语中使用通配符。
  • 下述检索查询(一个词)将按照要求工作:
  • message:*request*resu*
  • message:?request*
  • message:?req*
  • message:*?resul*
    NB:由于Elasticsearch会对您的查询应用分析器,如果您将通配符放在单词的开头/结尾,可能会看起来像是在短语内部工作。-例如:消息:“Request Resu*”(带引号)仍将返回有关已分析数据的两个文档,但是。这并不是因为通配符按预期工作,而是因为分析器在分析查询时去掉了星号。该查询将找不到值“Request Resuxxxxx”。

您可能需要浏览此link以了解更多详细信息。

相关问题