チュートリアル: Azure Cognitive Search の設定
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Azure Cognitive Search は将来的に廃止され、Sitecore では今後のリリースでこのサービスのサポートを終了する予定です。
Sitecore で Azure Search を使用するには、最初に Sitecore インスタンスで Azure Search サービスを設定する必要があります。これは、このチュートリアルの手順に従って行います。
Search サービスを作成する
Azure で Search サービスを作成するには:
-
Azure ポータルにログインし、[その他のサービス] をクリックして Search サービスを作成します。
-
[フィルター] フィールドで「Search サービス」と入力し、[Search サービス] をクリックします。
-
[Search サービス] ウィンドウで、[追加] をクリックします。
-
[新しい Search サービス] ウィンドウで、Search サービス インスタンスの名前を指定します。
注記Sitecore は 15 個の検索インデックスを使用するため、最低でも Standard の料金プランを契約する必要があります。複数の Sitecore インスタンスで、同じ Azure Search インスタンスを使用できます。
衝突を回避するため、インスタンスごとに
Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.config
ファイルで別のインデックス カタログ名を指定する必要があります。デフォルトでは、インデックス カタログ名は index-catalog になります。RequestResponse<!-- Index Catalog Name Specify name for index catalog Default value: index-catalog --> <setting name="ContentSearch.Azure.IndexCatalogName" value="index-catalog" />
引き続き [新規 Search サービス] ウィンドウで、次の操作を行います。
-
自分に合ったサブスクリプションのタイプを選択します。
-
該当するリソース グループ、場所、価格帯を自身の状況に合わせて選択します。
-
-
Search Service インスタンスが構成されている場合は、[作成] をクリックします。
-
新しく作成した Search サービスを開き、[設定]、[キー] をクリックします。
-
[プライマリ管理キー] または [セカンダリ管理キー] を
apiKey
パラメーターにコピーします。どのキーを使用してもかまいませんが、そのキーが接続文字列で使用されます。
接続文字列のフォーマット
Cloud Search のデフォルトの接続文字列名は cloud.search
であり、次の情報が含まれています。
-
serviceUrl
– Search サービス API の HTTPS URL (#https://dk-test.search.windows.net など)。 -
apiVersion
– 2017-11-11 など、日付形式に従います (各 API バージョンの詳細を参照してください)。 -
apiKey
– Azure 管理ポータルから取得するサービスの管理キー。
Sitecore バージョン 9.1 以降の場合は、API のバージョンを 2017-11-11 に設定します。サポートされている他のバージョンについては、「Azure Search の互換性表」を参照してください。
接続文字列のフォーマットは以下のとおりです。
<add name="cloud.search" connectionString="serviceUrl=<url>;apiVersion=<apiVersion>;apiKey=<apiKey>" />
xConnect 対応の Azure Cognitive Search は、この機能をサポートしていません。
Geo レプリケーションのシナリオ
Sitecore は、Geo レプリケーションのシナリオでの Search サービスをサポートしています。このタイプのシナリオを使用するには、次の手順に従います。
-
2 つ以上の Search サービス インスタンスを作成します。
-
パイプ区切り文字 (
|
) を使用して接続文字列を追加します。たとえば、2 つの Search サービス ( searchservice1 および searchservice2) があり、Geo レプリケーションのシナリオで使用する場合は、次の接続文字列を使用する必要があります。RequestResponse<add name="cloud.search" connectionString="serviceUrl=https://searchservice1.search.windows.net;apiVersion=2015-02-28;apiKey=AdminKey1|serviceUrl=https://searchservice2.search.windows.net;apiVersion=2015-02-28;apiKey=AdminKey2" />
高度なスケーリング シナリオ
高度なスケーリング シナリオでは、インデックス専用の Search サービスを使用することをお勧めします。設定するには、次の手順に従います。
-
新しい接続文字列を追加します (
cloud.search.analytics
など)。 -
次の接続文字列名を使用して、対応するインデックスを設定します。
Azure を検索プロバイダーとして指定する
デフォルトでは、Sitecore は Solr 検索プロバイダーを有効にした状態で配布されます。
-
Azure Search プロバイダーを使用するには、
web.config
ファイルで、検索プロバイダーとして Azure を指定します。
インデックスを再構築する
Sitecore の完全な機能を確保するため、インデックスを再構築する必要があります。
インデックスを再構築するには:
-
Sitecore のログイン ページ (http:// {your_instance}/sitecore/login) にアクセスし、管理者の資格情報を使用してログインします。
-
Sitecore スタート画面で、[コントロール パネル] をクリックし、[インデックス マネージャー] をクリックします。
-
すべてのインデックスを選択して再構築するには、[インデックス マネージャー] ページで [すべて選択]、[再構築] の順にクリックします。
注記インデックスの再構築は時間のかかる操作であり、15 分以上かかる場合があります。
インデックスが再構築されると、Sitecore の検索インデックスが Azure ポータルの [Search サービス] ウィンドウに表示されます。
Azure フィールドのタイプをマップする
.Net と Sitecore の間で、さまざまなタイプのマッピングを定義する方法を確認するには、App_Config\Sitecore\ContentSearch.Azure\Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.config ファイルの sitecore\contentsearch\indexConfigurations\defaultCloudIndexConfiguration\CloudTypeMapper
ノードにアクセスします。
次のように、すべてのカスタム フィールドについてマップ要素を定義する必要があります。
<map type="<Field type>" cloudType="<Edm type from list of supported types>" />
Azure Search は、次の Entity Data Model (EDM) のフィールド タイプを使用します。フィールド タイプを正しくマップするには、次の表を参照してください。
フィールド タイプ |
説明 |
---|---|
|
オプション: 単語の区切りやステミングなど、全文検索用にトークン化できるテキスト。 |
|
全文検索用にトークン化できる文字列のリスト。コレクション内のアイテム数に上限はありませんが、ペイロード サイズの上限である 16 MB がコレクションに適用されることに注意してください。 |
|
|
|
32 ビット整数値が含まれます。 |
|
64 ビット整数値が含まれます。 |
|
倍精度の数値データを使用します。 |
|
日付と時刻の値は、OData V4 形式で表されます。次に例を示します。 yyyy-MM-ddTHH:mm:ss.fffZ yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. 注記
|
.Net と Sitecore の間で、さまざまなタイプのマッピングを定義する方法を確認するには、App_Config\Sitecore\ContentSearch.Azure\Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.config ファイルの sitecore\contentsearch\indexConfigurations\defaultCloudIndexConfiguration\CloudTypeMapper
ノードにアクセスします。
次のように、すべてのカスタム フィールドについてマップ要素を定義する必要があります。
<map type="<Field type>" cloudType="<Edm type from list of supported types>" />
フィールドをマップする
コンポーネントが使用するすべてのフィールドをインデックス設定セクションにリストする場合は、次のようにリストすることをお勧めします。
-
sitecore
\contentSearch
\configuration
\indexes
\index
\configuration
\fieldMap
次の表に、サポートされている属性を示します。
属性 |
説明 |
---|---|
|
あるフィールドに別のフィールドよりも高い重要度を与えるために使用します。 |
|
検索操作とインデックス作成操作の両方に対してアナライザーを設定するために使用します。 注記
|
|
Cloud で定義されているフィールド名。文字、数字、およびアンダースコアのみを含めることができます。 注記 最初の文字は文字でなければなりません。 |
|
Solr で定義されているフィールドの名前。 |
|
この属性は、 |
|
インデックス作成操作に対してアナライザーを設定するために使用します。 注記 この属性を使用する場合、 |
|
検索操作に対してアナライザーを設定するために使用します。 注記 この属性を使用する場合、 |
|
|
Azure Search のサポート
クエリ サポートとファセット サポートを正しく設定する必要があります。Azure Search のサポートを設定するには、 Azure Search のサポート リファレンスを使用します。
HTTP 接続を開く数を設定する
次の設定を使用することで、Azure Search プロバイダーが使用する接続数を管理することができます。
<setting name="ContentSearch.Azure.ServicePoint.ConnectionLimit" value="100" />
次のシナリオでは、設定値を調整する必要があります。
-
HTTP を多用する他のアプリケーションがある場合は、値を減らす必要があります。
-
アプリケーションに高い負荷がかかっている場合は、新しい接続の作成に時間がかかったり、作成に失敗したりします。これは、超過制限の設定が低すぎるためです。このような場合は、値を増やす必要があります。
トークン アナライザーを設定する
トークン アナライザーは、Azure Search Analyzer API のサポートを追加することにより、テキストをトークンに分割します。検索クエリにハイフン (「-」) などの非ラテン文字が含まれている場合、テキストは 2 つのトークンに分割されます。たとえば、test-index
というクエリを使って Name フィールドを検索すると、フィールドに言語アナライザーが含まれているかどうかに関係なく、クエリ内のテキストは 2 つのトークン (test
および index
) にトークン化されます。
クエリ結果は、構成されているアナライザーによって異なります。フィールドにアナライザーが含まれていない場合、要求の送信には ContentSearch.Azure.DefaultTokenAnalyzer
が使用されます。
次の設定を使用して、アナライザーを構成します。
設定 |
説明 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
API を分析するための要求を送信するかどうかを制御します。この設定は、使用する環境のパフォーマンスに影響を与える可能性があります。ただし、無効にすることもできます。設定が無効になっている場合、または Analyze API からの応答がエラーを返した場合、テキストは次の記号をはじめとするトークンで分割されます。
| ||||||||||||||||||||
|
これを使用して、API を分析するための要求を送信するデフォルトのアナライザーを指定します。特に指定しない限り、デフォルトで標準の Lucene アナライザーを使用して要求が送信されます。 | ||||||||||||||||||||
|
アイテムをキャッシュに保持する期間を制御します。すべての Analyze API 要求は、Analyze API の結果をキャッシュに保存する環境のパフォーマンスに影響を与えるため、この設定は重要です。 |
ホワイトリストによってフィールドを制御する
インデックス スキーマに含めるフィールドは、ホワイトリストを使用して制御します。
Azure Search のホワイトリストを設定するには:
-
\App_Config\Sitecore\ContentSearch.Azure\ Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.config
設定ファイルで、indexAllFields
設定の値をfalse
に設定します。 -
設定ファイルで、設定セクションのリストに含めることが推奨される最小限のフィールドを追加します。推奨される最小限のフィールドのリストは次のとおりです。
RequestResponse<include hint="list:AddIncludedField"> <__Boost>{93D1B217-B8F4-462E-BABF-68298C9CE667}</__Boost> <__Bucketable>{C9283D9E-7C29-4419-9C28-5A5C8FF53E84}</__Bucketable> <__Created_By>{5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}</__Created_By> <__Enable_Item_Fallback>{FD4E2050-186C-4375-8B99-E8A85DD7436E} </__Enable_Item_Fallback> <__Hidden>{39C4902E-9960-4469-AEEF-E878E9C8218F}</__Hidden> <__Icon>{06D5295C-ED2F-4A54-9BF2-26228D113318}</__Icon> <__Is_Bucket>{D312103C-B36C-4CA5-864A-C85F9ABDA503}</__Is_Bucket> <__Semantics>{A14F1B0C-4384-49EC-8790-28A440F3670C}</__Semantics> <Date_Range>{7146F1A4-45FB-4CEC-9855-C95E9E595827}</Date_Range> <Extension>{C06867FE-9A43-4C7D-B739-48780492D06F}</Extension> <Facets_Location>{96ABAC42-67D6-46E0-91A9-8F46FF9EAC25}</Facets_Location> <Facets_Template>{154DC6DA-89C4-4704-8CDA-95994D794BEA}</Facets_Template> <File_Size>{E344C026-8575-496D-8CDF-7741891D0786}</File_Size> <ID>{5A531AF0-C44C-4141-A0D3-09C5CDC3D654}</ID> <Image_Dimensions>{05EF282C-54DE-49B5-9EF3-0EB3008080C6}</Image_Dimensions> <Language>{BC06ED64-C4A1-4EE2-9835-541E1CC4CCC9}</Language> <Mime_Type>{6F47A0A5-9C94-4B48-ABEB-42D38DEF6054}</Mime_Type> <Parent_ID>{1F4412CC-609C-4D3C-AF8C-D5C849202916}</Parent_ID> <Search_Types_Location>{A34F2EFE-CF7A-4BF3-86DC-589B33C1B236}</Search_Types_Location> <Search_Types_Template>{473454F9-5184-4BDD-9A04-0F567641407A}</Search_Types_Template> <Sitecore_Items>{BBDD760F-6C5F-467A-83B4-095CC9CFC2DF}</Sitecore_Items> <Size>{6954B7C7-2487-423F-8600-436CB3B6DC0E}</Size> <Table_View>{68DA2D37-ABC0-4001-BF01-A3FC8D2F1BF9}</Table_View> <Tag>{FE6DB0A6-09BD-4FEB-8D82-0F1C14183E18}</Tag> <Tags>{56EF9816-35AD-4160-B5DC-ECA7FE7DCFC2}</Tags> <Text>{A60ACD61-A6DB-4182-8329-C957982CEC74}</Text> <Title>{75577384-3C97-45DA-A847-81B00500E250}</Title> <Search_Types_Text>{E600C190-3F61-4776-B2F5-03AD7AEB351C}</Search_Types_Text> <Updated_Date>{87A830FB-4E2F-4F76-896B-F20CFA2374DD}</Updated_Date> <Workflow_State>{49D86313-493D-4054-ACC9-D68AD6B09332}</Workflow_State> </include>
-
インデックス作成の対象とするフィールドによって、設定セクションを拡張します。