1. 開発者向けのドキュメント

検索設定をSolrの利用可能性に合わせて調整してください

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

SitecoreにはSolr検索の利用可能性を監視し、Solrのダウンタイムに対して強靭に対応する仕組みが含まれています。これらの仕組みとSolrエンドポイントを使って、Solr検索の利用可能性に合わせて実装を適応させることができます。Solr 8以降を使用している場合、Sitecore IsSolrAliveAgentを使って定期的にSolrサービスの利用可能性や健全性をチェックし、Solrのコンテンツ検索インデックスや検索動作の管理IndexingStateSwitcherできます。Solrサーバーが利用可能になると、エージェントは自動的に検索およびインデックス機能をSitecore復元するため、管理者Sitecore何もする必要はありません。 IsSolrAliveAgentIndexingStateSwitcherの両方がデフォルトで有効化されています。この記事では、その使い方と必要に応じてデフォルトのタイムアウト値を変更する方法について説明します。

さらに、Solrが提供する /solr/healthz/readyエンドポイントを使ってSolrサーバーの健康状態や準備状況を監視し、必要に応じてサービスを再起動することも可能です。また、クエリを実行するたびにSolr検索サービスが利用可能かどうかも確認 できます。

注記

Solr検索はSitecoreAIのUI内でのみ内部利用されており、変更すべきではありません。検索機能を作成するには、Sitecore Searchなどの検索ツールを活用してください。 SitecoreAI環境におけるSitecore Search統合についての詳細は、「 Sitecore Searchの統合」をご覧ください。

IsSolrAliveエージェント

IsSolrAliveAgent Solrサービスが稼働していて応答しているかを確認します。エージェントは /solr/{core_name}/admin/healthcheck/solr/admin/info/systemなどのSolrエンドポイントにHTTPリクエストを送ります。もしSolrがタイムリーな応答を送らなかったり、エラーメッセージを返した場合、それはUnreachableNot respondingとみなされます。エージェントはその後、Sitecoreログに警告メッセージを記録します。この2つの州を区別することが重要です:

  • Unreachable - ネットワーク問題やファイアウォール制限など、Solrサーバーとの通信が妨げられている問題。

  • Not responding - サーバーがリクエストを受信したものの、サーバーの過負荷や設定エラーのため、タイムリーまたは成功した応答を提供できなかった場合。

Solrサーバーに到達できない場合、Sitecoreにエラーメッセージを返します。しかし、定められたタイムアウト時間内に全く応答しない場合は、応答しないとみなされます(Not responding)。これらのシナリオを区別するためにタイムアウト値を調整できます。これは このトピックの後半で説明します。

インデックス状態切り替え器

IndexingStateSwitcher Solrサービスの利用可能性に基づいてインデックス作成および検索動作を制御します。インデックス操作がSolrの可用性と同期し、データの整合性を維持します。Solrが利用不可と検出された場合、このエージェントはインデックス操作を一時停止し、データの不整合やエラーを防ぐことができます。また、ダウンタイム中にSolrがインデックスリクエストで過負荷になるのを防ぐのにも役立ちます。Solrが再び利用可能になると、IndexingStateSwitcherエージェントは自動的にインデックス操作を再開します。

IndexingStateSwitcherのタイムアウト値は以下のセクションで説明するように設定できます。

エージェントのタイムアウト値を設定します

IsSolrAliveAgentIndexingStateSwitcherのタイムアウト値は、interval属性を用いて秒単位で定義されます。タイムアウト設定はApp_Config\Includeフォルダ内の設定をパッチで修正することで変更できます。Solrの接続タイムアウトを指定することもできます。

パッチファイルを使ってIsSolrAliveAgentまたはIndexingStateSwitcherエージェントのタイムアウト値を設定するには:

XM Cloudは現在SitecoreAIとなっています

一部のコード例、画像、UIラベルは、エンジニアリング資産の更新中もXM Cloudを使用している場合があります。

  1. 例えば、App_Config\Includeフォルダに.configファイルを作成します。Sitecore.ContentSearch.Solr.config

    Folder structure and path to the App Config folder for adding a configuration file to change timeout values
  2. 設定ファイルに以下のコード構造を入力し、必要に応じてエージェントのintervalを変更します。以下の例では、間隔はそれぞれ15秒と3秒に設定されています。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:search="http://www.sitecore.net/xmlconfig/search/">
      <sitecore role:require="Standalone or ContentManagement or ContentDelivery or XMCloud" search:require="solr">
        <scheduling>
          <agent type="Sitecore.ContentSearch.SolrProvider.Agents.IsSolrAliveAgent, Sitecore.ContentSearch.SolrProvider" method="Run" interval="00:15:00" />
          <agent type="Sitecore.ContentSearch.SolrProvider.Agents.IndexingStateSwitcher, Sitecore.ContentSearch.SolrProvider" method="Run" interval="00:03:00" />
        </scheduling>
      </sitecore>
    </configuration>
  3. Sitecoreアプリケーションを再起動してください。

  4. ファイルを保存した後、https://{sitecore_instance_name}/sitecore/admin/showconfig.aspxに反映された変更を確認し、{sitecore_instance_name} を自分のインスタンスに置き換えることができます。

    Code sample that shows how to configure the timeout value for Sitecore Solr agents
この記事を改善するための提案がある場合は、 お知らせください!