私は、1〜50百万のSolrドキュメントを生成してSolrに追加するクライアントプログラムを持っています。
私はクライアントから文書をプッシュするためにConcurrentUpdateSolrServerを使用していますが、要求ごとに1000件の文書があります。
文書は比較的小さく(小さなテキストフィールドはほとんどありません)。
インデックス作成の速度を向上させたい。
"ramBufferSizeMB"を1Gに、 "mergeFactor"を25に増やそうとしましたが、変更は見られませんでした。
Solrのインデックス作成速度を改善するための推奨設定がいくつかあるかどうかは疑問でした。
関連資料へのリンクがあれば幸いです。改善のためにSolrを構成する方法
10
A
答えて
8
Solrにデータを一括インポートしているようですので、すぐにデータを検索する必要はありません。
最初に、リクエストごとにドキュメント数を増やすことができます。あなたのドキュメントは小さいので、リクエストあたり100Kドキュメントまで増やして試してみます。
第2に、一括インデックス作成時にコミットが発生する回数を減らす必要があります。あなたは完全に自動コミット無効にし、すべてのドキュメントが掲載された後にコミット呼び出すことができます
<!-- AutoCommit
Perform a hard commit automatically under certain conditions.
Instead of enabling autoCommit, consider using "commitWithin"
when adding documents.
http://wiki.apache.org/solr/UpdateXmlMessages
maxDocs - Maximum number of documents to add since the last
commit before automatically triggering a new commit.
maxTime - Maximum amount of time in ms that is allowed to pass
since a document was added before automatically
triggering a new commit.
openSearcher - if false, the commit causes recent index changes
to be flushed to stable storage, but does not cause a new
searcher to be opened to make those changes visible.
-->
<autoCommit>
<maxTime>15000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
:のためのあなたのsolrconfig.xmlで見えます。
デフォルトのmaxTime
は15秒です。コミットされていないドキュメントがある場合、15秒ごとに自動コミットが行われるため、これを3時間という大きな値に設定することができます(つまり3 * 60 * 60 * 1000)。 <maxDocs>50000000</maxDocs>
を追加することもできます。これは、自動コミットが発生するのは、5千万の文書が追加された後にのみ発生することを意味します。すべての文書を投稿した後、手動で、またはSolrJからコミットを1回呼び出す - コミットするまでに時間がかかりますが、全体的にはるかに高速になります。
バルクインポートを完了した後でも、maxTime
とmaxDocs
を減らしてください。そうすれば、Solrに対する増分ポストはもっと早くコミットされます。または、solrconfigで述べたようにcommitWithin
を使用してください。
関連する問題
- 1. I/Oを改善するための安価な方法
- 2. solrの近接検索の改善方法
- 3. クエリが遅いためにSQLカウント - 改善する方法は?
- 4. Pythonの関数の構成の改善
- 5. Djangoを保存するために私の見解を改善する方法
- 6. Webレスポンスタイムを改善するために画像を圧縮する方法は?
- 7. コードを改善する別の方法
- 8. SaveAsTableのパフォーマンスを改善する方法
- 9. このトリムハーフストリングアルゴリズムを改善する方法
- 10. ノードのパスを改善する方法
- 11. このコードを改善する方法
- 12. JavaScriptコードの書き方を改善するためのヒント
- 13. NetBeansスペルチェッカーの改善方法
- 14. スマートな方法で画像のプレビューを作成/改善する
- 15. 検索パフォーマンスを改善するための実績のある方法
- 16. フォールを改善する方法Javaコード
- 17. componentWillUnmountでclearTimeoutを改善する方法
- 18. コードを改善する方法Laravel?
- 19. アキュムレータを改善する方法
- 20. matlabでFFT2を改善する方法
- 21. LINQクエリを改善する方法
- 22. ウェブアプリケーションを改善する方法
- 23. KeyDown機能を改善する方法
- 24. Three.jsの影 - 改善する方法は?
- 25. solr + sunspotによる検索結果の改善
- 26. このフィルタをsargeableまたはインデックスを改善する方法
- 27. Solr隣接するクエリキーワードを使用した検索結果の改善
- 28. データベースエントリのための予測不可能な短い英数字IDの生成方法を改善する
- 29. 反応成分の改善
- 30. 検索のための私のSQLクエリを改善する
コミットが完全に無効になっている場合、メモリが不足することがあります。しかし、サーチャーを再開しないことは良い考えです。 –
こんにちはサーチャーを再開しないように設定する方法をアドバイスできますか? – Krunal
' false openSearcher>'は自動コミットが発生した後に新しい検索者を開きません。 –
arun