【发布时间】:2020-12-12 05:07:34
【问题描述】:
我创建了这个运行良好的 KQL,我正在 message 字段中搜索字符串 error,并且同一字段不应包含 EOF。在这里,我使用了 must 和 must not。现在我想添加一个额外的条件(AND),其中一个字段(kubernetes.pod.name)包含test。
{
"size": 1,
"query": {
"bool": {
"must": [
{
"match": {
"message": {
"query": "error",
"operator": "OR",
"prefix_length": 0,
"max_expansions": 50,
"fuzzy_transpositions": true,
"lenient": false,
"zero_terms_query": "NONE",
"auto_generate_synonyms_phrase_query": true,
"boost": 1
}
}
},
{
"range": {
"@timestamp": {
"from": "now-10000m",
"to": null,
"include_lower": true,
"include_upper": true,
"boost": 1
}
}
}
],
"must_not": [
{
"match_phrase": {
"message": {
"query": "EOF",
"slop": 0,
"zero_terms_query": "NONE",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
【问题讨论】:
-
顺便说一句,KQL 是 Kibana Query Language 的缩写,而您上面得到的是 DSL(域特定语言)查询,而不是 KQL :)
标签: elasticsearch kibana