es統計資料去除某個欄位的某些資料

tangtangtu發表於2024-07-20

es統計資料去除某個欄位的某些資料

要在Elasticsearch中統計資料並去除某個欄位的特定資料,可以使用以下步驟:

使用terms聚合獲取不需要的資料的分佈。

使用filter聚合結合terms篩選掉不需要的資料。

以下是一個Elasticsearch查詢的例子,假設我們有一個名為logs的索引,我們想要統計一個名為level的欄位,但是去除值為ERROR的資料:
POST /logs/_search { "size": 0, "aggs": { "non_error_logs": { "filter": { "bool": { "must_not": { "terms": { "level.keyword": ["ERROR"] } } } }, "aggs": { "distinct_levels": { "terms": { "field": "level.keyword", "size": 10 } } } } } }


這個查詢將返回一個名為non_error_logs的子聚合distinct_levels,它包含了不包含ERROR值的level欄位的分佈。注意,欄位名通常需要指定為.keyword以獲取精確的文字匹配。

相關文章