基本的に、大規模なドキュメント リポジトリのさまざまなサブセットを検索できるようにしたいと考えています。多値フィールドを使用して、現在含まれているサブセットを各ドキュメントに保存し、検索時にこのフィールドでフィルター処理することを考えています。問題は、サブセットが常に変化しているため、新しいサブセットを頻繁に追加し、このフィールドから古いサブセットを削除する必要があることです。
Solr ドキュメントのフィールドを更新する場合、ドキュメント全体を更新する必要があり、ドキュメントは古いコピーを削除して新しいコピーを追加することで更新されることを読みました。そのため、頻繁に更新すると、大量のコピーが削除され、内部のルックアップ テーブルが肥大化し、パフォーマンスが低下します。
私の質問は、この劣化がどれほど深刻かということです。そして、この問題にアプローチするより良い方法はありますか? 結局のところ、これは一般的な問題であるはずです。すぐに思い浮かぶのは、特定のタグを持つ記事を検索し、ユーザーのお気に入りの記事を検索することです (ただし、私たち自身のユース ケースはより複雑です)。
私は ExternalFileField を少し調べましたが、多値フィールドをサポートしていないようです (私が間違っていることを願っています)。サブセットの組み合わせが多すぎて、組み合わせを表すために 1 つの整数を使用できません (多値フィールドを変換するため)フィールドを単一値フィールドに変換します)。