aggregationを使って集約した結果に重複がありそうだったので、この重複をなくしたい
重複を削除して集計する場合はcardinality
を使う
GET /language/_search?size=0 { "aggs": { "lang": { "terms": { "field": "language", "size": 10 }, "aggs": { "id": { "cardinality": { "field": "id.value.keyword" } } } } }, }
結果
{ ... "aggregations" : { "lang" : { "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 0, "buckets" : [ { "key" : "EN", "doc_count" : 3416188, "id" : { "value" : 1285555 } }, { "key" : "KO", "doc_count" : 3416162, "id" : { "value" : 1288722 } } ] } }
3分の2が重複していたやばい
検索結果の重複削除はField Collapsingを使う
集約結果ではなく検索結果の重複を無くしたい場合はField Collapsingを使う