Solrを使用する際のパフォーマンスの最適化


解説

SolrをSitecoreの検索プロバイダーとして使用する場合、パフォーマンスを向上させるために調整できるさまざまなSitecore設定があります。症状には、Sitecoreサービスによる高いメモリ消費、xConnect検索サービスの平均応答時間の遅延、またはSolrによるxDBインデックスの永続的なバックアップが完了できないなどがあります。

注意:これらはSitecore固有の設定であり、Solrの設定ではありません。Solrの構成については、Solrのドキュメントを参照してください。

解決策

ContentSearch.SearchMaxResults

検索プロバイダーが取得するように要求される検索結果の数を制御します。

要求されたドキュメントが多数あると、すべての結果を逆シリアル化する必要があるため、Solrサーバー、ネットワーク、およびSitecoreに負担がかかります。

設定の値は、TakeまたはPage LINQ拡張機能を使用してクエリごとにオーバーライドできます。
クエリで要求されたドキュメントの数を常に指定するようお勧めします。

セーフティ ネットとして、ContentSearch.SearchMaxResults設定の値を減らすことをご検討ください。
Sitecoreの実装全体の一部として正確な値を慎重に評価し、開発プロセスの一部として徹底的にテストする必要があります。

ContentSearch.SearchMaxResultsは、すべてのSitecore XPインスタンスで設定する必要があることにご注意ください。

MaximumCommitMilliseconds

xDBインデックス データがSolrでコミットされる頻度を制御します。

トラフィックが多い際、Sitecore XPはxConnect検索サービスに大きな負荷をかける場合があります。Solrを検索プロバイダーとして使用する場合、実装ではxConnect検索サービスの平均応答時間が長くなる可能性があります。この設定を調整することでこの事象に対処できます。

パフォーマンスの問題が発生した場合は、xConnect検索サービスの\App_data\jobs\continuous\IndexWorker\App_data\Config\Sitecore\SearchIndexer\sc.Xdb.Collection.IndexWriter.SOLR.xmlファイルでMaximumCommitMilliseconds設定をより大きな値に変更できます。

<MaximumCommitMilliseconds>600000</MaximumCommitMilliseconds>

備考:ソリューションでxDBインデックスをほぼリアル タイムで更新することが重要である場合、設定を可能な限りデフォルト値に近づける必要があります。

追記

xConnect検索インデックス サービスの詳細については、次のリンク先をご参照ください:

Sitecore XPでSolrを設定する、または最大検索結果の設定するには、次のリンク先をご参照ください: