---
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サービスを再起動することもできます。また、クエリを実行するたびに[Solr検索サービスが利用可能かどうかも確認](https://doc.sitecore.com/xp/ja/developers/103/sitecore-experience-manager/find-out-if-the-solr-search-service-is-available.html "Find out if the Solr search service is available") できます。

> !注Solr検索は の内部UIでのみ利用されており、変更してはいけません。検索機能を作成する場合は、[Sitecore Search](https://doc.sitecore.com/search/en/developers/search-developer-guide/getting-started-with-sitecore-search.html)などの検索ツールをご利用ください。環境に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*)。これらのシナリオを区別するためにタイムアウト値を調整できます。これは [このトピックの後述で](https://doc.sitecore.com/xp/ja/developers/103/sitecore-experience-manager/adapt-your-search-settings-to-solr-availability.html#UUID-b58fda82-7dfd-1298-65b3-9d00f23b3c93_section-idm4583815962078434301889951448 "Configure the timeout value of an agent")説明します。

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

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/xp/ja/developers/103/sitecore-experience-manager/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/xp/ja/developers/103/sitecore-experience-manager/images/check_changes_in_solr_timeout_config.png)