/ / ElasticSearchは単一のクエリですべてを削除して新しいドキュメントを挿入できますか? -検索、lucene、elasticsearch

ElasticSearchはすべてを削除し、単一のクエリで新しい文書を挿入できますか? - 検索、lucene、elasticsearch

特定のインデックスタイプのすべてのドキュメントを交換したいのですが。私はこれをデータベーストランザクションのように考えています。

  1. タイプ内のすべてのドキュメントを削除します
  2. 新しいドキュメントを作成する
  3. コミット

これはElasticSearchのバルクAPIで可能であるようですが、より直接的な方法はありますか?

回答:

回答№1は2

次の声明に基づいて、 elasticsearchクエリAPIドキュメントによる削除

クエリによる削除は、バージョン管理のサポートをバイパスします。また、「インデックス内のデータの大きな塊」を何度も削除することはお勧めしません。新しいインデックスに単純に再インデックスすることをお勧めします。

あなたは全体を削除することを再検討したいかもしれませんタイプし、同じインデックスからそれらを再作成します。このステートメントが示唆するように、単純にインデックスを再作成する方が良いです。実際、メーカー製品のインデックスがあり、メーカーが製品の更新リストを送信すると、新しいデータを永続ストアにロードし、インデックス全体を完全に再構築するシナリオがあります。私はの使用を実装しました インデックスエイリアス 使用されている実際のインデックスをマスクできるようにします。 製品の変更が発生すると、バックグラウンドで新しいインデックスを再構築するプロセスが開始され(現在は約15分かかります)、データの読み込みが完了して古いインデックスを削除すると、エイリアスが新しいインデックスに切り替わります。そのため、これは完全にシームレスであり、ユーザーのダウンタイムは発生しません。