我想写一个查询来查找包含名称和数字+/- 5的日志事件。由于我不知道此日志事件的确切结构,因此无法在单独的int字段中提取数字。
我的查询当前看起来像这样。
baseQuery = {
"query": {
"bool": {
"must": [
{"match": {"sim_session" : "session_id"}},
{"match": {"event" : "putFilenameHere"}},
{"bool": {
"should": [
{"match_phrase": {"event" : "Name"}},
#Search for the line in the event text
{"match": {"event" : "42"}}
],
"minimum_should_match" : 2
}}
]
}
}
}
所以我可以找到包含“名称”和数字“ 42”(被视为字符串)的事件,但是我想查找包含“名称”和37或38或39或40或41的事件或42或43或44或45或46或47。还有什么更聪明的方法来实现,然后只用一个不同的数字执行相同的查询11次?]
执行此查询的脚本是用python编写的。
Thx
您可以对要查询的范围进行预处理:
event
是文本,则将使用每个数字标记自动对查询字符串进行标记和查询:"match": {
"event": "37 38 39 40 41 42 43 44 45"
}
event
是关键字,则使用条款查询:"terms": {
"event": ["37", "38", "39", "40", "41", "42", "43", "44", "45"]
}