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を使う