フィールドの値が複数の文書で同じ場合、文書の数が必要です。これを行うにはどうすればDSLクエリを書くことができますか?同じ値を持つ複数の文書が存在する場合の弾性検索カウント
例:
のは、私はこれらの文書を持っているとしましょう:
{ _id:1, foo:1}
{ _id:2, foo:1}
{ _id:3, foo:3}
{ _id:4, foo:2}
{ _id:5, foo:3}
のfooの同じ値が複数の文書に発見された場合、私は、文書のカウントをしたいです。ここでは、私が欲しいのカウントは2。
UPDATE
として用語のクエリを実行した後のように:私は別のフィールドをしたい
'aggregations':{
'counts':{
'buckets':[
{'doc_count': 221,'key': '10284'},
{'doc_count': 71,'key': '6486'},
{'doc_count': 71,'key': '7395'}
],
'doc_count_error_upper_bound': 0,
'sum_other_doc_count': 0
}
}
:
{
"size": 0,
"aggs": {
"counts": {
"terms": {
"field": "foo"
}
}
}
}
私はこの結果を得ましたtotal_count
として値3を持ちます.3つのキーがあり、1より大きいdoc_countがあります。どうすればいいですか?
私はあなたがESでボックスの外でこれを行うことはできないと思う。 'min_doc_count:2' 'terms'集計の後に基本的にバケットカウントが必要です。 –
ES 5には、https://github.com/elastic/elasticsearch/issues/19553があります( 'bucket_selector'集約には、使用可能な' _bucket_count'変数があります)。その変数が他のスクリプトでも使用できるかどうかはまだ分かりません。 –
新しい '_bucket_count'変数@AndreiStefanに言及した良い点 – Val