elasticsearch中對於空字符串""的過濾操作

## 在項目的一個需求中,需要對ELK中的數據進行聚合統計的操作,這裏因爲是用Java進行開發,所以需要涉及到相應的api的使用。因爲之前從來沒碰過ELK之類的環境,剛拿到這個問題的時候自己還是有點懵逼的,但是既然到了自己的手上,就得硬着頭皮去搞搞看。
在參照了ElasticSearch的官方文檔之後和借鑑了一些其他的博文之後,就開始動手先自己試試看了。首先對於數據的聚合,得先處理一些無效的值,比如文檔中的一些空字符串的值,這些值查出來去統計的意義不太,反而還會影響統計的準確性。

這裏就直接列出一些主要的操作: 當然作爲開發來說 環境都是搭建好的,所以這裏就不涉及到環境方面的問題了。
舉個栗子: 比如我要聚合的數據中的test字段中有一些“”(空的字符串)的數據,那麼我先對其進行過濾處理,想要在聚合之前先把空的字符串給過濾掉。這裏可以先構建查詢條件,即查詢的數據中要包含test這個字段,但是test字段的數據不能爲空字符串。

BoolQueryBuilder boolQueryBuilder= QueryBuilders.boolQuery()
					.must(QueryBuilders.existsQuery("test"))
					.mustNot(QueryBuilders.termQuery("test", ""));
					
接下來 就是將構造好的查詢條件加入到我們的聚合中。
AggregationBuilder aggregationBuilder = null;
aggregationBuilder = AggregationBuilders.filters("test",boolQueryBuilder);

下面還可以拼接其他的聚合條件,這裏只列出了簡單的一個字段的處理,讀者可以根據自己的情況對數據進行其他的處理。

溜了溜了…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章