私は100K - 1000Kのドキュメントを持つsolrコアを持っています。
ほとんどのドキュメントでフィールド値を追加または設定する必要があるというシナリオがあります。
Solrを通してそれをすることはあまりにも多くの時間がかかります。
Luceneライブラリでそのようなタスクを実行し、Solrインデックスに直接(オーバーヘッドを少なくして)アクセスする方法があるのかどうかと思いました。
必要に応じて、コアをシャットダウンし、コードを実行し、その後コアをリロードすることができます(Solrで実行するよりも時間がかからないことを期待して)。
誰かがすでにそのようなことをしたかどうか、そしてその方法で大きな落とし穴があるかどうかを聞くのは素晴らしいことです。
回答:
回答№1は0同様の問題がLucene Javaメーリングリストで複数回議論されています。根本的な問題は、Lucene(したがってSolr)で文書を更新できないことです。
代わりに、文書を削除して新しいものを挿入してください。これは明らかに、分析、インデックスセグメントのマージなどのオーバーヘッドを追加します。それでも、指定された量のドキュメントはそれほど大きなものではなく、数日かかることはありません(複数スレッドでSolrを更新してみましたか?)。
もちろん、Luceneを使ってこれを試してみると、違いがあるかどうかを確認できますが、そうする必要があります 絶対確実 Solrと同じアナライザーを使用します。
回答№2の場合は0
ほとんどのドキュメントでフィールド値を追加または設定する必要があるというシナリオがあります。
あなたがそれを頻繁にしなければならないなら、多分あなたは以下のようなものを見る必要があります。 ExternalFileField。制限はありますが、直接LuceneにアクセスしてSolrのインフラストラクチャをハッキングするよりも良い場合があります。