私はElasticSearchの問題を抱えています。ElasticSearch:フィルタリングされたユニークなレコードの集計
私はフィルタリングされたデータセットから一意のドキュメントを取得しようとしており、その上に集計を行っています。
我々のデータセットは次のようになります。.. IDオブジェクトプロパティ1 Property2 12 123 Test1をFest2 23 234 Test3はFest4 5 123 Test1をFest2 55 123 Test2をFest4 3 234 Test2をFest2
I property2に基づいてデバイスをフィルタリングし、一意にフィルタリングされたレコードのproperty1に集約(グループ化)することができます。 誰かが私にこれを助けることができますか?
一意のレコードをフィルタリングして取得する。
{
"size": 0,
"query": { "match": { "Property2": "Fest2" }},
"aggs": {
"Unique-Object": {
"terms": {
"field": "object.keyword",
"size": 20
},
"aggs": {
"top_uids_hits": {
"top_hits": {
"sort": [
{
"_score": {
"order": "desc"
}
}
],
"size": 1
}
}
}
}
}
}'
私は上記のDSLの出力に次のようにプロパティ1でグループに好きでした...この上でしたいくつかのいずれかスローライトを?
グループプロパティ1
"aggs": {
"Property1_count": {
"terms": {
"field": " Property1.keyword"
}
おかげ アルンS
あなたの要件に合わせてSQLクエリを作成できますか?それであなたの質問は明確になりますか? 。 –
ありがとうございます。生のSQLクエリは、このようなものです。.. select count(DISTINCT id)where Property2 = 'xxx' group by property1 – Manoj
私の答えが更新されました。私はIDとプロパティ1で2つのグループを使うべきだと思います。テストデータで確認してください。私は私のシステムでテストしました。 –