---
title: "検索設定をSolrの利用可能性に合わせて調整してください"
slug: "adapt-your-search-settings-to-solr-availability"
abstract: "IsSolrAliveAgentおよびIndexingStateSwitcherの機能を使ってApache Solrの健康状態、可用性、準備状況を監視します。コンテンツ検索および検索インデックスの設定。"
---
# 検索設定をSolrの利用可能性に合わせて調整してください

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

さらに、Solrが提供する /solr/healthz/readyエンドポイントを使ってSolrサーバーの健康状態や準備状況を監視し、必要に応じてサービスを再起動することも可能です。また、クエリを実行するたびに[Solr検索サービスが利用可能かどうかも確認](https://doc.sitecore.com/xp/en/developers/104/sitecore-experience-manager/find-out-if-the-solr-search-service-is-available.html) できます。

> !注Solr検索はSitecoreAIのUI内で内部利用するためのみで、改変すべきではありません。検索機能を作成するには、[Sitecore Search](https://doc.sitecore.com/search/en/developers/search-developer-guide/getting-started-with-sitecore-search.html)などの検索ツールをご利用ください。SitecoreAI環境にSitecore Searchを統合する方法については、「 [統合Sitecore Search](https://developers.sitecore.com/learn/accelerate/xm-cloud/implementation/sitecore-search/integrating-sitecore-search)」をご覧ください。

## IsSolrAliveエージェント

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

-   到達不可 - ネットワークの問題やファイアウォール制限など、Solrサーバーとの通信が阻まれている問題です。
-   応答しない - サーバーはリクエストを受け取りましたが、サーバーの過負荷や設定エラーのため、タイムリーかつ成功した応答を提供できませんでした。

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

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

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

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

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

IsSolrAliveAgentとIndexingStateSwitcherのタイムアウト値は、interval属性を用いて秒単位で定義されます。タイムアウト設定はApp\_Config\\Includeフォルダ内の設定をパッチで修正することで変更できます。[Solrの接続タイムアウトを指定する](https://doc.sitecore.com/xp/en/developers/104/platform-administration-and-architecture/specify-connection-timeout.html)こともできます。

パッチファイルを使って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](https://doc.sitecore.com/api/markdown-image/sai/ja/developers/sitecoreai/images/configuration_file_in_app_config_include.png)
    
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](https://doc.sitecore.com/api/markdown-image/sai/ja/developers/sitecoreai/images/check_changes_in_solr_timeout_config.png)