Elasticsearch で複数のフィールドでレコード数をカウントする方法のメモ。
■クエリ
{ "query": { "match_all": {} }, "aggs": { "count_name_value": { "multi_terms": { "terms": [{ "field": "name" }, { "field": "value" }], "size": 2 } } }, "_source": ["name", "value"], "size": 0 }
■実行結果
{ "took" : 23, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 6, "relation" : "eq" }, "max_score" : null, "hits" : [ ] }, "aggregations" : { "count_name_value" : { "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 1, "buckets" : [ { "key" : [ "3", "3" ], "key_as_string" : "3|3", "doc_count" : 3 }, { "key" : [ "2", "2" ], "key_as_string" : "2|2", "doc_count" : 2 } ] } } }