チュートリアル: Azure Cognitive Searchを構成する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Azure Cognitive Searchは将来廃止され、Sitecoreは将来のリリースでこのサービスのサポートを提供しなくなります。
Azure SearchをSitecoreで使用するには、まずAzure SearchサービスをSitecoreインスタンスで設定する必要があります。これを行うには、このチュートリアルの手順を使用します。
Searchサービスを作成する
AzureでSearchサービスを作成するには:
-
Azureポータルにログインし、More servicesをクリックして、検索サービスを作成します。
-
FilterフィールドにSearch serviceと入力し、Search servicesをクリックします。
-
Search servicesウィンドウで、Addをクリックします。
-
New Search Serviceウィンドウで、Search Serviceインスタンスの名前を指定します。
メモSitecoreは15の検索インデックスを使用するため、最低でもStandardの価格帯が必要です。同じAzure Searchインスタンスを複数のSitecoreインスタンスに使用できます。
競合を回避するには、インスタンスごとに異なるインデックスカタログ名を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" />
まだNew Search Serviceウィンドウでは、次のようになります。
-
お客様に適したサブスクリプションの種類をお選びください。
-
お客様に適した関連するリソース グループ、場所、価格レベルを選択します。
-
-
Search Serviceインスタンスを設定したら、Createをクリックします。
-
新しく作成した検索サービスを開き、Settings、Keysをクリックします。
-
Primary admin keyまたはSecondary admin keyをapiKeyパラメーターにコピーします。どのキーを使用するかは関係ありませんが、キーは接続文字列で使用されます。
接続文字列の書式設定
Cloud Searchのデフォルトの接続文字列名はcloud.searchで、次の情報が含まれています。
-
serviceUrl – 検索サービス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>" />
Azure Cognitive Search for xConnectでは、この機能はサポートされていません。
geoレプリケートされたシナリオ
Sitecoreは、地理的にレプリケートされたシナリオでSearchサービスをサポートしています。このタイプのシナリオを使用するには、次のようにします。
-
2つ以上のSearch Serviceインスタンスを作成します。
-
パイプ区切り記号 (|) を使用して接続文字列を追加します。 searchservice1とsearchservice2の2つの検索サービスがあり、それらを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" />
高度なスケーリング シナリオ
高度なスケーリング シナリオでは、インデックスに専用の検索サービスを使用することをお勧めします。これを設定するには:
-
新しい接続文字列 ( cloud.search.analyticsなど) を追加します。
-
対応するインデックスを次の接続文字列名で構成します。
検索プロバイダーとしてAzureを指定する
デフォルトでは、SitecoreはSolr検索プロバイダーを有効にして配布されます。
-
Azure Searchプロバイダーを使用するには、web.configファイルで、検索プロバイダーとしてAzureを指定します 。
インデックスを再構築する
Sitecoreが完全に動作するように、インデックスを再構築する必要があります。
インデックスを再構築するには、次のようにします。
-
Sitecoreログイン ページ (http:// {your_instance}/sitecore/login) に移動し、管理者の資格情報でログインします。
-
Sitecoreスタート画面で、Control Panelをクリックし、Indexing managerをクリックします。
-
すべてのインデックスを選択して再構築するには、Indexing ManagerページでSelect all、Rebuildの順にクリックします。
手記インデックスの再構築は時間のかかる操作であり、15分以上かかる場合があります。
インデックスが再構築されると、Sitecore検索インデックスがAzureポータルのSearch serviceウィンドウに表示されます。
Azureフィールドの種類をマップする
.NetとSitecoreの間のさまざまなタイプのマッピングを定義する方法については、App_Config\Sitecore\ContentSearch.Azure\Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.configファイルのsitecore\contentsearch\indexConfigurations\defaultCloudIndexConfiguration\CloudTypeMapperノードに移動します。
すべてのカスタムフィールドのmap要素は、次のように定義する必要があります。
<map type="<Field type>" cloudType="<Edm type from list of supported types>" />
Azure Searchでは、次の エンティティ データ モデル (EDM) フィールドの種類が使用されます。フィールドタイプを正しくマッピングするには、次の表を参照してください。
Field type |
Description |
---|---|
Edm.String |
オプション: 全文検索用にトークン化できるテキスト (単語区切り、ステミングなど)。 |
Collection(Edm.String) |
全文検索用にトークン化できる文字列の一覧。コレクション内のアイテム数に上限はありませんが、ペイロード サイズの16 MBの上限がコレクションに適用されることに注意してください。 |
Edm.Boolean |
trueまたはfalseの値が含まれます。 |
Edm.Int32 |
32ビット整数値が含まれます。 |
Edm.Int64 |
64ビット整数値が含まれます。 |
Edm.Double |
倍精度の数値データを使用します。 |
Edm.DateTimeOffset |
日付と時刻の値は、次のようにOData V4形式で表されます。 yyyy-MM-ddTHH:mm:ss.fffZ yyyy-MM-ddTHH:mm:ss.fff+|-HH:mm. 手記 DateTimeフィールドの精度はミリ秒に制限されています。ミリ秒未満の精度を持つDateTime値をアップロードすると、戻り値はミリ秒に切り上げられます。 2015-04-15T10:30:09.7552052Zは次のように返されます。 2015-04-15T10:30:09.7550000Z. |
.NetとSitecoreの間のさまざまなタイプのマッピングを定義する方法については、App_Config\Sitecore\ContentSearch.Azure\Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.configファイルのsitecore\contentsearch\indexConfigurations\defaultCloudIndexConfiguration\CloudTypeMapperノードに移動します。
すべてのカスタムフィールドのmap要素は、次のように定義する必要があります。
<map type="<Field type>" cloudType="<Edm type from list of supported types>" />
マップフィールド
コンポーネントが使用するすべてのフィールドをインデックス設定セクションの下にリストする場合は、次のようにリストすることをお勧めします。
-
sitecore\contentSearch\configuration\indexes\index\configuration\fieldMap
次の表では、サポートされている属性について説明します。
Attribute |
Description |
---|---|
boost |
1つのフィールドを他のフィールドよりも重要度を高くするために使用します。 |
cloudAnalyzer |
検索操作とインデックス作成操作の両方に対してアナライザーを設定するために使用します。 手記 searchAnalyzer属性とindexAnalyzer属性を使用している場合は、1つのcloudAnalyzer属性を置き換えるペアとして指定する必要があります。 |
cloudFieldName |
Cloudに定義されているフィールド名。文字、数字、アンダースコアのみを含めることができます。 手記 最初の文字は文字である必要があります。 |
fieldName |
Solrに定義されているフィールドの名前。 |
format |
この属性は、DateTimeタイプのフィールドに対して構成する必要があります。サポートされている値は yyyy-MM-ddTHH:mm:ss.fffZ. |
indexAnalyzer |
インデックス作成操作用のアナライザーを設定するために使用します。 手記 この属性を使用する場合は、searchAnalyzer属性とindexAnalyzer属性をペアとして指定し、1つのcloudAnalyzer属性を置き換える必要があります。 |
searchAnalyzer |
この属性を使用して、検索操作用のアナライザーを設定します。 手記 この属性を使用する場合は、searchAnalyzer属性とindexAnalyzer属性をペアとして指定し、1つのcloudAnalyzer属性を置き換える必要があります。 |
settingType |
settingTypeプロパティは、次の条件を満たす必要があります。Sitecore.ContentSearch.Azure.CloudSearchFieldConfiguration, Sitecore.ContentSearch.Azure |
Azure Searchのサポート
クエリ サポートとファセット サポートを正しく構成する必要があります。Azure Searchのサポートを構成するには、Azure Searchのサポート リファレンス を使用します。
開いているHTTP接続の数を構成する
Azure Searchプロバイダーが使用する 接続の数は 、次の設定で管理できます。
<setting name="ContentSearch.Azure.ServicePoint.ConnectionLimit" value="100" />
次のシナリオでは、設定値を調整する必要があります。
-
HTTPを多用する他のアプリケーションがある場合はdecrease the value、.
-
アプリケーションの負荷が高いと、新しい接続の作成に時間がかかりすぎるか、作成が失敗します。これは、超過制限の設定が低すぎるためです。 increase the valueする必要があります。
トークンアナライザの設定
Token Analyzerは、Azure Search Analyzer APIからのサポートを追加することで、テキストをトークンに分割します。検索クエリにハイフン ("-") などの非ラテン文字が含まれている場合、テキストは2つのトークンに分割されます。たとえば、クエリtest-indexを使用してNameフィールドを検索すると、クエリ内のテキストはtestとindexの2つの個別のトークンにトークン化されます (フィールドに言語アナライザーが含まれているかどうかは関係ありません)。
クエリ結果は、構成されているアナライザーによって異なります。フィールドにアナライザーが含まれていない場合、ContentSearch.Azure.DefaultTokenAnalyzerは要求の送信に使用されます。
次の設定を使用して、アナライザーを構成します。
設定 |
形容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ContentSearch.Azure.UseTokenAnalyzer |
APIを分析するための要求を送信するかどうかを制御します。この設定は、環境のパフォーマンスに影響を与える可能性があります。ただし、無効にすることはできます。設定が無効になっている場合、またはAnalyze APIからの応答がエラーを返す場合、テキストは次の記号を含むトークンに分割されます。
| ||||||||||||||||||||
ContentSearch.Azure.DefaultTokenAnalyzer |
これを使用して、APIを分析する要求を送信する既定のアナライザーを指定します。デフォルトでは、特に指定しない限り、要求は標準のLuceneアナライザーを使用して送信されます。 | ||||||||||||||||||||
ContentSearch.Azure.TokenCacheSlidingExpiration |
アイテムをキャッシュに保持できる期間を制御します。すべての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>
-
インデックスを作成するフィールドで構成セクションを拡張します。