※この記事は次のブログを翻訳したものになります。pluginに置き換えられています。利用する場合、2.0にアップグレードしたあとは、プラグインをインストールし、ドキュメントに従ってください。Queryの実装は簡単にはフィックスできない大きな問題がありました。各リクエストのあとに、refreshを実行します。これは、削除されたデータが想定外に検索に出てこないようにするためです。セグメントが大量にでき、マージが大量に発生し、ヒープが大量に消費されてインデキシングが劇的にスローダウンし、クラスタの複数のノードがクラッシュしてしまう状況も引き起こしました。このクエリは、プライマリ、レプリカの両方で実行されるため、ことなるドキュメントを削除し、矛盾したレプリカ(データの破損)を引き起こしました。アップグレードが不安定になります。Queryリクエストがトランザクションログの中にクエリとして残るためです。そのため、アップグレードのあとに正確にパースされなかったり正確に実行されないかもしれません。インデックスエイリアスに対するリクエストで、それが削除された後の場合にこのようなバグが発生します。対照的に、新しいプラグインは、安全な実装です。この実装は、遅い必要があります。クエリが多くのドキュメントを削除する場合です。多くのドキュメントをこのAPIを利用して削除する場合、アプリケーションをテストしてください。代わりにインデックス全体を消すようなアプローチに切り替えることができないか検討してください。pluginのドキュメントに、新しい実装についての違いなどのより詳しい説明があります。coreを最小限にプラグインに切り替えることは、簡単な決断ではありませんでした。Queryを利用していました。危険が常にそこにあり、些細とは言い切れない数のユーザが上記のような深刻な問題に遭遇していました。Elsticsearchのコアは信頼できるものでなければなりません。他のコアAPIを利用して実装できる機能は、コアに含みません。それがバグを含んでいる場合。Queryは人気があり、高性能ですが、そうではありませんでした。必要に応じて、このような難しいトレードオフの末、信頼性と品質を選びます。マッピングの削除の廃止タイプのマッピングを削除する機能も2.0で廃止されます。これは、同じフィールド名を、異なるフィールドのタイプで再利用した場合に、インデックスの破損を引き起こす可能性があるためです。Queryプラグインに対してタイプを指定することで、タイプのすべてのドキュメントを削除することはできます。1つのインデックスに異なるタイプを複数含める代わりに、個別のインデックスに分割するようなアプローチに変更することを検討してください。