チュートリアル: Azure Cognitive Searchを構成する

Version: 10.1
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

注意

Azure Cognitive Searchは将来廃止され、Sitecoreは将来のリリースでこのサービスのサポートを提供しなくなります。

Azure SearchをSitecoreで使用するには、まずAzure SearchサービスをSitecoreインスタンスで設定する必要があります。これを行うには、このチュートリアルの手順を使用します。

接続文字列の書式設定

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の互換性テーブルを参照してください。

接続文字列の形式は次のとおりです。

RequestResponse
<add name="cloud.search" connectionString="serviceUrl=<url>;apiVersion=<apiVersion>;apiKey=<apiKey>" /> 
手記

Azure Cognitive Search for xConnectでは、この機能はサポートされていません。

geoレプリケートされたシナリオ

Sitecoreは、地理的にレプリケートされたシナリオでSearchサービスをサポートしています。このタイプのシナリオを使用するには、次のようにします。

  1. 2つ以上のSearch Serviceインスタンスを作成します。

  2. パイプ区切り記号 (|) を使用して接続文字列を追加します。 searchservice1searchservice2の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" /> 
    

高度なスケーリング シナリオ

高度なスケーリング シナリオでは、インデックスに専用の検索サービスを使用することをお勧めします。これを設定するには:

  1. 新しい接続文字列 ( cloud.search.analyticsなど) を追加します。

  2. 対応するインデックスを次の接続文字列名で構成します。

Connection string name

検索プロバイダーとしてAzureを指定する

デフォルトでは、SitecoreはSolr検索プロバイダーを有効にして配布されます。

  • Azure Searchプロバイダーを使用するには、web.configファイルで、検索プロバイダーとしてAzureを指定します

インデックスを再構築する

Sitecoreが完全に動作するように、インデックスを再構築する必要があります。

インデックスを再構築するには、次のようにします。

  1. Sitecoreログイン ページ (http:// {your_instance}/sitecore/login) に移動し、管理者の資格情報でログインします。

  2. Sitecoreスタート画面で、Control Panelをクリックし、Indexing managerをクリックします。

  3. すべてのインデックスを選択して再構築するには、Indexing ManagerページでSelect allRebuildの順にクリックします。

    手記

    インデックスの再構築は時間のかかる操作であり、15分以上かかる場合があります。

    インデックスが再構築されると、Sitecore検索インデックスがAzureポータルのSearch serviceウィンドウに表示されます。

    Indexing Manager page

Azureフィールドの種類をマップする

.NetとSitecoreの間のさまざまなタイプのマッピングを定義する方法については、App_Config\Sitecore\ContentSearch.Azure\Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.configファイルのsitecore\contentsearch\indexConfigurations\defaultCloudIndexConfiguration\CloudTypeMapperノードに移動します。

手記

すべてのカスタムフィールドのmap要素は、次のように定義する必要があります。

RequestResponse
<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要素は、次のように定義する必要があります。

RequestResponse
<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プロバイダーが使用する 接続の数は 、次の設定で管理できます。

RequestResponse
<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フィールドを検索すると、クエリ内のテキストはtestindexの2つの個別のトークンにトークン化されます (フィールドに言語アナライザーが含まれているかどうかは関係ありません)。

クエリ結果は、構成されているアナライザーによって異なります。フィールドにアナライザーが含まれていない場合、ContentSearch.Azure.DefaultTokenAnalyzerは要求の送信に使用されます。

次の設定を使用して、アナライザーを構成します。

設定

形容

ContentSearch.Azure.UseTokenAnalyzer

APIを分析するための要求を送信するかどうかを制御します。この設定は、環境のパフォーマンスに影響を与える可能性があります。ただし、無効にすることはできます。設定が無効になっている場合、またはAnalyze APIからの応答がエラーを返す場合、テキストは次の記号を含むトークンに分割されます。

" " (スペース)

-

#

@

.

,

`

~

!

$

%

^

&

(

)

<

>

+

/

ContentSearch.Azure.DefaultTokenAnalyzer

これを使用して、APIを分析する要求を送信する既定のアナライザーを指定します。デフォルトでは、特に指定しない限り、要求は標準のLuceneアナライザーを使用して送信されます。

ContentSearch.Azure.TokenCacheSlidingExpiration

アイテムをキャッシュに保持できる期間を制御します。すべてのAnalyze API要求は、Analyze APIの結果をキャッシュに格納する環境のパフォーマンスに影響を与えるため、これは重要です。

ホワイトリストによる制御フィールド

ホワイトリストを使用して、インデックススキーマに含めるフィールドを制御します。

Azure Searchのホワイトリスト登録を構成するには:

  1. \App_Config\Sitecore\ContentSearch.Azure\ Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.config設定ファイルで、indexAllFields設定の値をfalseに設定します。

  2. 設定ファイルで、設定セクションのリストに含める最小推奨フィールドを追加します。フィールドの最小推奨リストには、次のものが含まれます。

    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>
  3. インデックスを作成するフィールドで構成セクションを拡張します。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、