Я пытаюсь отфильтровать ошибки в Kibana, но не все ошибки, только ошибки, которые не имеют указанной строки c в поле сообщения. Мой запрос выглядит следующим образом:
GET search-apps/_search
{
"query": {
"bool": {
"filter": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": "now-120m",
"lte": "now"
}
}
},
{
"term": {
"level": "error"
}
}
],
"must_not": [
{
"term": {
"message": "Exception thrown while fetching records from Kinesis"
}
}
]
}
}
}
}
}
Кажется, что фильтр игнорирует "must_not", так как я все еще получаю ошибки, которые имеют эту строку в поле сообщения. Есть ли какой-то порядок выполнения, когда он игнорирует must_not? Должен работать нормально, я получаю только уровень: ошибка возвращается, но я также получаю результаты, которые имеют эту строку в сообщении. Это также работает, если я хотел вернуть результаты только с полем сообщения:
{
"query": {
"match": {
"message": {
"query": "Exception thrown while fetching records from Kinesis",
"type": "phrase"
}
}
}
}
Однако для этой темы, обратное не работает, как предлагалось.