Solr インデックスのサイズが大きくなっています。インデックスには 300 万のドキュメントが含まれています。一部のドキュメントを頻繁に更新する必要があります。ただし、インデックスには何百万ものドキュメントが含まれているため、Solr のコミットには毎回時間がかかります。そして、各コミットは新しいサーチャーを開きます。そのため、最初の検索には時間がかかります。ドキュメントを効率的に更新する方法はありますか? 前もって感謝します。
1 に答える
1
インデックス作成を高速化するSolr 4のソフト コミットを確認できます。新しいドキュメントは、コミットされるとすぐに利用可能になりますが、インデックスに永続化されません。たまにハードコミットを実行することを決定できます。
ソフト コミットは、インデックスの変更を可視化するだけで、インデックス ファイルの fsync や新しいインデックス記述子の書き込みを行わないため、はるかに高速です。JVM がクラッシュしたり、電力が失われたりすると、最後のハード コミット後に行われた変更は失われます。ほぼリアルタイムの要件がある検索コレクション (インデックスの変更を検索ですばやく確認できるようにする必要がある) では、頻繁にソフト コミットを行う必要がありますが、ハード コミットの頻度は低くなります。
回復はおそらくトランザクション ログで実行できます。
ドキュメントを失うことが問題になる場合は、Solr のマスター スレーブ アーキテクチャを構成できます。マスターはインデックス作成が行われる場所であり、スレーブは検索が実行される場所であるため、インデックス作成とコミット時間は検索にあまり影響しません。ただし、遅延が発生するだけでなく、コミットの頻度にも依存します。
于 2013-06-12T06:40:38.090 に答える