1. 程式人生 > 實用技巧 >ES跨叢集查詢聚合不到資料的問題

ES跨叢集查詢聚合不到資料的問題

● 系統環境說明

Linux環境:centos 7.2
騰訊雲ES Service:7.5.1
Java:1.8.0_181

● 叢集配置

32核64GB, 3個(主節點)
50GB 高效能雲盤 x1

32核64GB, 12個(資料節點)
6000GB SSD雲硬碟 x2

問題異常:

ES cross cluster search(CCS)跨5個叢集,查詢到了資料,但是隻聚合出1條結果。

GET /cluster_five:imlog_k12-2020-11-05/_search
{
	"size": 10,
	"query": {
		"bool": {
			"filter": [{
				"range": {
					"log_timestamp": {
						"gte": "1604567040000",
						"lte": "1604567459000",
						"format": "epoch_millis"
					}
				}
			}, {
				"query_string": {
					"analyze_wildcard": true,
					"query": "project:\"scon_helper_server\" AND env:\"prod\" AND message:*user_external*"
				}
			}]
		}
	},
	"aggs": {
	  "message_group": {
	    "terms": {
	      "field": "message.keyword"
	    }
  }
}

}

解決方案:

這個是由於各個叢集的mapping不一致導致,確認一下各叢集的mapping。使用exists query即可確認:

{
"query":{
"exists":{
"field":"message.keyword"
}
}
}