---
title: "ウォークスルー:Azure Cognitive Searchの設定"
slug: "walkthrough--configure-azure-cognitive-search"
abstract: "この開発者ガイドを使ってAzure Searchインスタンスを設定してください。"
---
# ウォークスルー:Azure Cognitive Searchの設定

### 注意

Azure Cognitive Searchは将来的に廃止され、Sitecoreは今後このサービスのサポートを終了します。

SitecoreでAzure Searchを使うには、まずSitecoreインスタンスでAzure Searchサービスを設定する必要があります。

## Searchサービスを作成する

AzureでSearchサービスを作成するには、以下の手順に従ってください。

1.  [Azureポータル](https://azure.microsoft.com/)にログインし、「**More services**」をクリックしてSearchサービスを作成してください。
    
2.  **フィルター**フィールドで「Search service」と入力し、「**Search services**」をクリックしてください。
    
    ![Search for Search services](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/91/platform-administration-and-architecture/images/6A3A9E8F2CB442E6AC6CCD8FE3149616.png)
    
3.  **Search services**ウィンドウで「**追加**」をクリックします。
    
    ![Click Add](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/91/platform-administration-and-architecture/images/BDB3EA34893D4467B05236A811CA5DC0.png)
    
4.  **新しいSearchサービス**ウィンドウで:
    
    -   Search Serviceインスタンスの名前を指定してください。
    -   自分に合ったサブスクリプションの種類を選びましょう。
    -   自分に合ったリソースグループ、所在地、価格帯を選びましょう。
    
    > !注Sitecoreは15の検索インデックスを使用しているため、最低限標準価格帯が必要です。
    
    ![New Search Service window](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/91/platform-administration-and-architecture/images/5F3DBC6035294D57B6E4618E44688A54.png)
    
5.  Search Serviceインスタンスが設定されたら、「 **作成**」をクリックします。
    
6.  新しく作成した検索サービスを開き、「 **設定**」→ **キー**をクリックしてください。
    
7.  **プライマリ管理者キー**か**セカンダリ管理者キー**をapiKeyパラメータにコピーします。どのキーを使うかは関係ありませんが、そのキーは接続文字列に使われます。
    

## 接続文字列のフォーマット

クラウドSearchのデフォルトの接続文字列名はcloud.searchで、以下の情報が含まれています。

-   serviceUrl – 検索サービスAPIのHTTPS URL(例: [https://dk-test.search.windows.net](https://dk-test.search.windows.net))。
-   apiVersion – は日付形式に従います。例えば2017-11-11( [APIのバージョンに関する詳細](https://msdn.microsoft.com/library/azure/dn798935.aspx)情報を参照)。
-   apiKey – Azure管理ポータルから取得するサービスの管理者キーです。

> !注バージョン9.1以降Sitecore APIバージョンを2017-11-11に設定してください。他のサポートバージョンについては、[Azure Search互換性表](https://kb.sitecore.net/articles/549969)を参照してください。

接続文字列の形式は以下の通りです:

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

> !注Azure Cognitive Search for xConnectはこの機能をサポートしていません。

### ジオレプリケートシナリオ

Sitecoreはジオレプリケートシナリオを含むSearchサービスをサポートしています。この種のシナリオを使用するには:

1.  2つ以上のSearchサービスインスタンスを作成します。
    
2.  パイプセパレーター(|)で接続文字列を追加します。例えば、searchservice1とsearchservice2のような2つの検索サービスがあり、それらをジオレプリケート(地理的複製)で使いたい場合は、以下の接続文字列を使用しなければなりません。
    
    <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](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/91/platform-administration-and-architecture/images/3CED22D63B624CB2BFFE6CEDE59049B4.png)

## 検索プロバイダーとしてAzureを指定してください

デフォルトではSitecoreはSolr検索プロバイダーが有効化された状態で配布されています。

代わりにAzureを使うには、web.configファイルで検索提供者として[Azureを指定する](https://doc.sitecore.com/xp/ja/developers/91/platform-administration-and-architecture/configure-a-search-and-indexing-provider.html "Configure a search and indexing provider")必要があります。

## インデックスの再構築

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

インデックスを再構築するために:

1.  Sitecoreログインページ(http:// {your\_instance}/sitecore/login)にアクセスし、管理者の認証情報でログインしてください。
    
2.  Sitecore **Launchpad**でコントロール **パネル**をクリックし、「 **インデックスマネージャー**」を選択してください。
    
3.  すべてのインデックスを選択して再構築するには、**インデックスマネージャー** のページで「 **すべて選択**」→「 **再構築**」をクリックしてください。
    
    > !注インデックスの再構築は時間がかかり、15分以上かかることもあります。
    
    インデックスが再構築されると、Sitecoreの検索インデックスはAzureポータルの**Searchサービス** ウィンドウに表示されます。
    
    ![Indexing Manager page](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/91/platform-administration-and-architecture/images/4B949D4B00C94DD1A55C849238DA8196.png)
    

## Map the Azure field types

Azure Searchは以下の [エンティティデータモデル(EDM)フィールドタイプ](https://msdn.microsoft.com/en-us/library/azure/dn798938.aspx)を使用しています。フィールドタイプを正しくマッピングしているか確認するために、表を参照してください。

**フィールドタイプ**

**概要**

Edm.String

オプション:全文検索のためにトークン化できるテキスト、例えば単語区切りや語幹整理など。

Collection(Edm.String)

全文検索のためにトークン化可能な文字列のリストです。コレクション内のアイテム数に上限はありませんが、ペイロードサイズの上限16MBはコレクションにも適用されることを覚えておいてください。

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\\indexConfigurations\\defaultCloudIndexConfiguration\\CloudTypeMapperノードに移動します。\\Sitecore。ContentSearch。Azure。DefaultIndexConfiguration.config*ファイル。

> !注すべてのカスタムフィールドのmap要素は次のように定義しなければなりません:

## マップフィールド

コンポーネントが使用するすべてのフィールドをインデックス設定セクションでリストアップする際は、以下のように記載するのがベストプラクティスです。

-   sitecore\\contentSearch\\configuration\\indexes\\index\\configuration\\fieldMap

サポートされる属性は以下の通りです:

**属性**

**概要**

fieldName

ルセンとソルのために定義されたフィールドの名前。

cloudFieldName

クラウドで定義されたフィールド名。文字、数字、アンダースコアのみを含められます。  
  
\> \[!注\]  
\> 最初の文字は文字でなければなりません。

boost

ブースト属性を使って、あるフィールドの重要度を他より高めましょう。

format

この属性は、 DateTime 型フィールドに対して設定する必要があります。サポートされている値は yyyy-MM-ddTHH:mm:ss.fffZ.

settingType

settingTypeプロパティは以下の条件でなければなりません:Sitecore.ContentSearch.Azure.CloudSearchFieldConfiguration, Sitecore.ContentSearch.Azure

## Azure Searchへの支援

クエリサポートとファセットサポートを正しく設定するために、[サポートリファレンスを](https://doc.sitecore.com/xp/ja/developers/91/platform-administration-and-architecture/support-reference-for-azure-cognitive-search.html "Support reference for Azure Cognitive Search") 活用してくださいAzure Search。

## 複数のオープンHTTP接続を設定しましょう

Azure Searchプロバイダーが使用する [接続数は](https://docs.microsoft.com/en-us/dotnet/framework/network-programming/managing-connections) 以下の設定で管理できます:

<setting name="ContentSearch.Azure.ServicePoint.ConnectionLimit" value="100" />

以下の状況では設定値を調整する必要があります:

-   *値を下げる* - HTTPを集中的に使っている他のアプリケーションがある場合。
-   *値を上げる* - アプリケーションが高負荷の場合、新しい接続の作成に時間がかかりすぎたり、作成に失敗したりします。これは、超過上限が設定されすぎているためです。