インデックス操作 (Azure Cognitive Search REST API)

特定のインデックス リソースに対する単純な HTTP 要求 (POST、GET、PUT、DELETE) を使用して、Azure Cognitive Search サービスでインデックスを作成および管理できます。 インデックスは、インデックスのフィールド コレクションを使用して検索ドキュメントの構造を指定します。 フィールド名、データ型、属性によって、クエリ時に個々のフィールドを構成、分析、および使用する方法が決まります。 たとえば、フィールドの属性によって、フィールドが検索可能、フィルター可能、並べ替え可能かどうかなどが決まります。

インデックスは、関連性のチューニング、サジェスター、カスタム アナライザーのスコアリング プロファイルなど、他のコンストラクトも定義します。

次の例は、フィールド、suggester、カスタム アナライザー、および言語アナライザーを含むインデックス スキーマを示しています。 フィールド、サジェスター、カスタム アナライザー、スコアリング プロファイル (表示されません) は、インデックス内のセクションです。 言語アナライザーは定義済みであり、フィールド定義で参照されます。

fields コレクション内では、1 つのフィールドが検索ドキュメント識別子としてサービスを提供する必要があります。 このフィールドの属性 "key": true は次のとおりです (次の HotelId 例を参照)。

{
  "name": "hotels",  
  "fields": [
    { "name": "HotelId", "type": "Edm.String", "key": true, "filterable": true },
    { "name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": true, "facetable": false },
    { "name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.microsoft" },
    { "name": "Description_fr", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "fr.microsoft" },
    { "name": "Category", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
    { "name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "sortable": false, "facetable": true, "analyzer": "tagsAnalyzer" },
    { "name": "ParkingIncluded", "type": "Edm.Boolean", "filterable": true, "sortable": true, "facetable": true },
    { "name": "LastRenovationDate", "type": "Edm.DateTimeOffset", "filterable": true, "sortable": true, "facetable": true },
    { "name": "Rating", "type": "Edm.Double", "filterable": true, "sortable": true, "facetable": true },
    { "name": "Address", "type": "Edm.ComplexType", 
      "fields": [
          { "name": "StreetAddress", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": false, "searchable": true },
          { "name": "City", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "StateProvince", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "PostalCode", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "Country", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true }
        ]
    },
    { "name": "Location", "type": "Edm.GeographyPoint", "filterable": true, "sortable": true },
    { "name": "Rooms", "type": "Collection(Edm.ComplexType)", 
      "fields": [
          { "name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.lucene" },
          { "name": "Description_fr", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "fr.lucene" },
          { "name": "Type", "type": "Edm.String", "searchable": true },
          { "name": "BaseRate", "type": "Edm.Double", "filterable": true, "facetable": true },
          { "name": "BedOptions", "type": "Edm.String", "searchable": true },
          { "name": "SleepsCount", "type": "Edm.Int32", "filterable": true, "facetable": true },
          { "name": "SmokingAllowed", "type": "Edm.Boolean", "filterable": true, "facetable": true },
          { "name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "facetable": true, "analyzer": "tagsAnalyzer" }
        ]
    }
  ],
  "suggesters": [
      { "name": "sg", "searchMode": "analyzingInfixMatching", "sourceFields": ["HotelName"] }
  ],
  "analyzers": [
    {
      "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",    
      "name": "tagsAnalyzer",
      "charFilters": [ "html_strip" ],    
      "tokenizer": "standard_v2"    
    }
  ]
}  

インデックスが作成された後、インデックスを設定するドキュメントをアップロードします。 この次の手順については 、「ドキュメントの追加、更新、または削除 」を参照してください。

インデックスに対する操作

GET を含むすべての検索インデックス操作には、管理 API キーが必要です。

こちらもご覧ください