我試圖通過以下查詢查詢有關elasticsearch中文檔的統計信息。問題是,我試圖忽略具有某些值的文件logger
,但我不知道如何。下面的查詢將所有正確的文檔選擇爲該集合,但它不排除具有不希望的值的文檔。在彈性搜索中過濾OUT匹配文檔與聚合
任何建議,非常歡迎。
{
"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