0
私はElasticsearch 5.3を使用しています。私はフィールドをカウントし、別のフィールドでグループ化したい。さらに、その文書の他のフィールドも取得したいと考えています。Elasticsearchで用語集と一緒に他のフィールドを取得する方法は?
"aggs" : {
"people" : {
"terms" : { "field" : "name" },
"aggs" : {
"event_count" : { "value_count" : { "field" : "event" } }
}
}
}
上記ESクエリはSELECT COUNT(event) FROM table GROUP BY name;
と同等です。新しいESクエリは、次のSQLクエリのようになります。SELECT name, address, age, COUNT(event) FROM table GROUP BY name;
。これはどうすればいいですか?あなたはこれがtop_hits
集約を使用することです達成することができます
ありがとうございました。私はその違いをチェックします。私が必要とするのは、 'name'でグループ化されたフィールド、残りのフィールドの値、' event'のカウントです。残りのフィールドの値は「名前」ごとに変更されることはないので、データが失われるとは思わない。 – khateeb
同じ名前の2人は必然的に同じ年齢と住所を持つでしょうか? – Val
フィールドは実際には一意のセッションIDです。私は簡潔さのために名前を使用しました。 – khateeb