---
title: "ルールベースの構成"
slug: "rule-based-configuration"
abstract: "Sitecoreはルールベースのロジックを用いて設定設定の適用を制御します。"
---
# ルールベースの構成

ルールベースの設定により、個々の設定ファイルを手動で有効・無効化することなく、役割を素早く設定できます。ルールベースの設定値はweb.configファイル内で設定されます。

Sitecoreには以下の事前定義されたルール定義が付属しています:

-   Roleは、インスタンスが実行するSitecoreロールを決定します。
-   Searchは、Sitecoreが最適化されている検索プロバイダーを決定します。
-   *Indexing*これは、マルチインスタンス環境においてインデックス作成を [担当するContent ManagementまたはContent Deliveryインスタンスを決定するサブロール](https://doc.sitecore.com/xp/ja/developers/93/platform-administration-and-architecture/enable-the-indexing-sub-role.html "Enable the indexing sub-role") です。

例えば、Sitecoreで特定のサーバーロールを実行するために設定するには、役割定義の値を変更するだけで済みます。

あらかじめ定義されたキーに加えて、自分だけのカスタムルールを追加することもできます。

このトピックでは以下の内容を説明します:

-   [ロールルールの定義](https://doc.sitecore.com/xp/ja/developers/93/platform-administration-and-architecture/rule-based-configuration.html#UUID-49b9edc6-ada1-04d8-5065-e3e10f4f23b1_N1634721416727 "The role rule definition")
-   [検索ルールの定義](https://doc.sitecore.com/xp/ja/developers/93/platform-administration-and-architecture/rule-based-configuration.html#UUID-49b9edc6-ada1-04d8-5065-e3e10f4f23b1_N1634721409098 "The search rule definition")
-   [慣習ルール](https://doc.sitecore.com/xp/ja/developers/93/platform-administration-and-architecture/rule-based-configuration.html#UUID-49b9edc6-ada1-04d8-5065-e3e10f4f23b1_N1634721402069 "Custom rules")

## ロールルールの定義

ロール定義によってサーバーロールが決まります。Sitecoreは以下の事前設定済みサーバーロールを出荷します:

サーバーの役割

概要

コンテンツ管理

コンテンツ編集者がウェブサイトにコンテンツを作成・公開できるようにします。

コンテンツ配信

ウェブコンテンツをウェブサイトの連絡先に提供します。

加工

取得した生の分析データから情報を抽出し、報告アプリケーションに適した形式に変換します。

報告

収集および報告データベースなどの様々なデータソースからレポートデータを取得し、Sitecoreのレポートアプリケーション(例えばExperience Analytics)で使用します。

スタンドアロン

すべてのサーバーロールを担う単一のSitecoreインスタンスです。

> !注ルールベースの構成はインデックス作成、公開、メールディスパッチサーバーの役割をサポートしていません。これらの役割は手動で設定する必要があります。

値は大文字大文字を区別しません。ただし、表に書かれた名前をそのまま使うのがベストプラクティスです。以下の例は、コンテンツ管理の役割のみを果たすように設定されたSitecoreインスタンスを示しています:

<add key="role:define" value="ContentManagement" />

デフォルト値はスタンドアロンです。スタンドアロンインストールはすべてのSitecoreサーバーロールを満たし、すべての機能を実行します。これは本番環境では最適な構成ではありません。なぜなら、特定のサーバーロールに合わせてインスタンスを最適化できないからです。さらに、インスタンスをスケールさせる唯一の方法は、インスタンスをホストするサーバーにハードウェアを追加することです。

サーバーを増やし、それぞれに異なるサーバー役割を割り当てることで、パフォーマンスとスケーラビリティを向上させることができます。

### 役割の統合

1つのSitecoreインスタンスで2つ以上のサーバーロールをホストすることができます。ただし、これは特定の組み合わせにのみ推奨します。以下の例は、xDB処理およびxDBレポーティングの役割を果たすために構成されたSitecoreインスタンスを示しています:

<add key="role:define" value="Processing,Reporting" />

> !注コンテンツ管理とコンテンツ配信機能を1台のサーバーで組み合わせるには、*Standalone*構成を使うことだけです。この構成は本番環境では推奨されません。

## 検索ルールの定義

検索定義は、SitecoreがどのContent Searchプロバイダーに最適化されているかを決定します。Sitecoreは以下の検索用に事前設定された定義を出荷しています:

-   ソル
-   Azure

SolrはSitecoreインストールフレームワークでSitecoreをインストールする際のデフォルト値です。Sitecore Azure Toolkitでインストールする際のデフォルト値は*Azure* Sitecoreです。

値は大文字大文字を区別しません。ただし、上記の通りに値名を使うのがベストプラクティスです。以下の例は、Solrを検索提供者として使用するように設定されたSitecoreインスタンスを示しています:

<add key="search:define" value="Solr" />

> !重要xDBインデックスはコンテンツSearchフレームワークではなく、xConnect Searchフレームワークの一部です。xConnect検索プロバイダーはsearch:defineプロパティの影響を受けず、別途設定する必要があります。

## 慣習ルール

Sitecoreインストールの設定を制御するには、[独自のカスタムルールを定義](https://doc.sitecore.com/xp/ja/developers/93/platform-administration-and-architecture/add-a-custom-rule-to-your-configuration.html "Add a custom rule to your configuration")できます。例えば、Sitecoreインスタンスがテスト環境か本番環境かを指定するカスタムルールを追加できます。その後、カスタムルールの値を各Sitecoreインスタンスにテストすることで、環境依存の設定を適用できます。