3

次の場合に、検索ルーチンからドキュメントを「隠す」方法があるかどうか疑問に思っています。

  1. インポート プロセスは毎日実行されます。
  2. インポート プロセスは、複数の呼び出しを介してドキュメントを Elastic Search にインデックス付けしています。_bulk
  3. インポート プロセスの実行中は、経由で取得できるドキュメントをインポートしただけではありません_search

エラスティック検索には何らかのトランザクション サポートがありますか? トランザクションがコミットされるまで、インデックス ドキュメントは利用できませんか?

1 回のインポート プロセスでインデックス化されるドキュメントの数は非常に多いと予想されます。_bulkだから私は1つの電話をすることはできません。

インポート処理の最後にindex.refresh_intervalインデックスの設定と呼び出しを試みました。_refreshしかし、これはあまり役に立ちません。ドキュメントはインポート プロセスの途中で検索可能になりました。

4

1 に答える 1

5

Elasticsearch はトランザクションをサポートしていません。クライアント側でこの機能を処理する必要があります。ドキュメントを追加するだけ (更新なし) の場合は、バッチ ID を各レコードに関連付け、バッチ ID >= 現在実行中のバッチを持つすべてのレコードを除外できます。バッチの最後に、新しいレコードを利用可能にしたい場合は、フィルターを更新して、終了したばかりのバッチ ID を含めることができます。このフィルターをエイリアスに関連付けることができます。これにより、スイッチが検索者に対して透過的になります。ただし、このアプローチは更新の場合には機能しません。

于 2013-03-29T17:27:23.803 に答える