Я пытаюсь запросить статистику о документах в elasticsearch со следующим запросом. Проблема в том, что я пытаюсь игнорировать документы с определенными значениями для поля logger
, но я не могу понять, как это сделать. В нижеследующем запросе выбираются все нужные документы в набор, но он не исключает документы с нежелательными значениями.Отфильтровать соответствующие документы в elasticsearch с агрегацией
Любые предложения очень приветствуются.
{
"query": {
"bool": {
"filter": {
"bool": {
"must_not": {
"terms": {
"logger": [
"experimentsplitsegmentlogger_errors",
"ExperimentLogger"
]
}
}
}
},
"must_not": {
"terms": {
"logger": [
"experimentsplitsegmentlogger_errors",
"ExperimentLogger"
]
}
},
"must": {
"exists": {
"field": "count"
}
}
}
},
"aggs": {
"keys": {
"filter": {
"bool": {
"must_not": {
"terms": {
"logger": [
"experimentsplitsegmentlogger_errors",
"ExperimentLogger"
]
}
}
}
},
"terms": {
"field": "logger"
},
"aggs": {
"hostnames": {
"terms": {
"field": "hostname"
},
"aggs": {
"pids": {
"terms": {
"field": "pid"
},
"aggs": {
"time_stats": {
"stats": {
"field": "timestamp"
}
},
"count_stats": {
"stats": {
"field": "count"
}
}
}
}
}
}
}
}
},
"size": 0
}
ваших фильтров и терминов агрегатах находятся на том же уровне, сроки должен быть один уровень вложенных в '' aggs' из filter', и почему у вас есть фильтры 3 раза, один раз должен работать, если это правильно казнены. –
@SumitKumar У меня есть три раза, потому что он не работает. Я был бы признателен, если бы вы могли опубликовать ответ с примером того, что вы имеете в виду, потому что я нахожу ваш смысл неясным. – Marcin