0

我需要有关搜索查询的帮助!

我的 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'
4

1 回答 1

0

标准的 Elasticsearch 分词器打破了单词边界。字符被认为是-单词边界。所以在内部 ES 存储message[oct,17,01,26,20(2),arnold(2),123,us,com,info,successful](基本上它是术语 + 频率的向量,忽略术语的顺序。)

您必须创建一个自定义标记器,以识别数据中的标记并使用它重新索引您的数据。那么您的搜索可能会奏效。

更好的解决方案是使用 logstash 来解析某些类型的消息并将数据存储在不同的字段中。例如,您可以将 arnold-123-20 has hostPart、 us.com 存储为hostDomain,并将 arnold-123-20.us.com 存储为fullHost。您还需要添加一个索引模板,将不同的字段标记为not_analyzed.

于 2016-10-17T13:56:56.343 回答