2016-03-28 14 views
0

私は動作するクエリを持っています。 Idに基づいてデータを集計し、作成されたフィールドに基づいてMOST RECENTオブジェクトを検索します。私が持っている問題は、の2番目に多くの最近のの代わりに、最も最近のものを探したいということです。私はこれについてどうやって行くのですか?私はすべてのドキュメントを見てきました。私が見つけることができるのは、私にはあまり役に立たない範囲です。ありがとう:)弾性検索:日付集計最新の

{ 
    "query":{ 
     "match": { 
     "name": "Robert" 
     } 
    }, 
    "aggs": { 
     "previous": { 
      "terms": { 
       "field": "Id", 
       "order": {"timeCreated": "desc"} 
      }, 
      "aggs": { 
       "timeCreated": { 
        "max": {"field": "created"} 
       } 

      } 
     } 
    } 
} 
+0

最新のドキュメントとはどういう意味ですか?私が最新のものを意味するものは、現在の日付から最新のものを希望する「売れた」フィールドのものです。 – Richa

+0

@Richa私がドキュメントで見たことは限られた範囲ですが、私は現在の時間から最新のものを検索したいと思います。 – emarel

+0

@リチャは、何か明確にする必要がある場合はお知らせします。どんな助けもありがたいです – emarel

答えて

1

Top_hitsは、あなたが探しているものです。これを使用してください:

{ 
"query":{ 
    "match": { 
    "name": "A" 
    } 
}, 
"aggs": { 
    "previous": { 
     "terms": { 
      "field": "Id" 

     }, 
     "aggs": { 
      "latestRecords": { 
       "top_hits": { 
       "sort": { 
        "created": { 
        "order": "desc" 
        } 
       }, 
       "size" :2 
       } 
      } 
      } 
     } 
    } 
    } 
+0

これは素晴らしいですが、集計がなければ直近の2番目のロバートを取得します。私はそれぞれのIDから2番目に新しいロバートを探しています。各IDから2番目に最近のRobertを見つける必要性に合わせて、ソリューションを拡張するにはどうすればよいですか。 – emarel

+0

あなたの要件に応じて私の答えを更新しました。それがあなたのために働くかどうかを確認してください。 – Richa

+0

これは完璧に動作します!あなたは驚くばかりであり、真剣に私の一日を作った:)私はそれがキーとカウントだけでなくオブジェクト全体を返したことにもショックを受けた。これはtop_hits機能が原因ですか?とにかく、sooooたくさんありがとう! – emarel

関連する問題