我在搜索查询方面需要帮助!
我的kibana中的消息数量低于'n',并且我想在下面的消息字段中仅提取“arnold-123-20”字符串,而在我的搜索中忽略hypen( - )并且在时间戳中忽略该数字( 20)匹配错误,我需要忽略它。
message:Oct 17 01:26:20 arnold-123-20.us.com arnold: [INFO]- Successful
在kibana UI中搜索查询:
message:"arnold" AND message:"123-20" AND message:'Successfully'
答案 0 :(得分:0)
标准Elasticsearch tokenizer打破了单词边界。 -
个字符被视为字边界。因此,内部ES将message
存储为[oct,17,01,26,20(2),arnold(2),123,us,com,info,successful]
(基本上它是术语+频率的向量,忽略了术语的顺序。)
您必须创建一个自定义标记生成器,用于识别数据中的标记并使用该标记重新索引数据。那么你的搜索可能会有效。
更好的解决方案是使用logstash来解析某些类型的消息并将数据存储在不同的字段中。例如,您可以将arnold-123-20存储为hostPart
,将us.com存储为hostDomain
,将arnold-123-20.us.com存储为fullHost
。您还需要添加一个索引模板,将不同的字段标记为not_analyzed
。