最近有一個多字段去重查詢的需求 但是在百度上查詢之后 得到的結果都是只能單字段去重的 如下:
"aggs": { "uid_aggs": { "cardinality": { "field": "uid" } } }
所以這里推薦上不了谷歌的盡量用必應 能看懂英文的盡量用國際版查詢
https://qbox.io/blog/minimizing-document-duplication-in-elasticsearch
參考上面的示例 可以用
"aggs":{
"uid_aggs":{
"cardinality": {
"script":"doc['feild1'].toString + doc['feild2'].toString" # 任意多個字段
}
}
}
toString其實可以不要
這樣就可以實現多字段去重查詢
不過這個語法有一個缺點,在數據量太大的時候統計是不准確的,差不多有5%的誤差