私は最新のドキュメントスナップショットを提供するデータソースを持っています(差分ではありません)。同じスナップショットにelasticsearchを反映させて検索したいと思います。私は同じことを行うには、次のオプションがあります。ElasticSearchの一括更新データ:一括更新/削除とエイリアスを使用したゼロからのインデックス付け
- は同じ(スクロールを使用して)弾性からすべてを取得し、メモリや一括更新(indexアクションで一括API)で差分を計算する - これが二回保持するためのプログラムが必要になります更新を計算するためにメモリを増やす
- スナップショットからすべてのものをスナップショットから一括して更新し、更新されなかったものすべてをエラスティック(UIDのフィルタを検索して最後に更新)からフェッチし、別のバルク要求をソフトにする私たちが弾性から多くのデータをダウンロードする必要はないので、diff(バルクAPIの更新アクション)を削除してください。
- エイリアスで2つのインデックスを保持し、 1つは現在の「検索可能な」コピーとして、もう1つは更新のためのスタンバイとして使用されます。新しいスナップショットが登場するたびに、待機中のものを
[delete all documents][1]
に使用し、スナップショットのすべてをスタンバイのものに一括更新し、エイリアス(本質的に別名API - アトミック)を最新のものにフリップすることができますが検索されます。
注:diffは非常に小さいと考えられます。
アプローチ2は、パフォーマンスコストと弾性効率の面でアプローチ3とどのように似ていますか?
私たちはどのように多くのレコード/文書を話しています約? – Val
約30kのレコードですが、データを100kに拡大すると、パフォーマンスがどのように影響を受けるかを理解したいと思います。 – Tweety