インデックスの更新 (REST API Azure Cognitive Search)

既存のインデックスを変更するには、通常、次のスキーマ変更を除き、 インデックスの削除と再構築が必要です。

  • フィールド コレクションに新しいフィールドを追加する

  • 新しく作成したフィールドを suggester に追加する

  • スコアリング プロファイルを追加または変更する

  • 暗号化キーを追加または変更する

  • 新しい カスタム アナライザーを追加する

  • CORS オプションを変更する

  • 次の 3 つの変更のいずれかを使用して、既存のフィールドを変更します。

    • 変更 retrievable (値は true または false)
    • 変更 searchAnalyzer (クエリ時に使用)
    • 追加または変更 synonymMaps (クエリ時に使用)

これらの更新プログラムを追加するには、要求 URI にインデックス名を入力します。 要求本文に、変更を加えた完全に指定されたインデックス定義を含めます。

PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]  
  Content-Type: application/json  
  api-key: [admin key]  

既存のフィールドとほとんどのフィールド属性を削除または変更したり、サジェスターにフィールドを追加したりすることはできません。 に追加 suggesterできるのは、新しく作成されたフィールドのみです。

新しいフィールドが追加されると、既存のすべてのドキュメントで、そのフィールドの null 値が自動的に取得されます。 新しいフィールドに値が指定されるか (マージを使用)、または新しいドキュメントが追加されるまで、他のストレージ領域は使用されません。

既存のアナライザー、トークナイザー、トークン フィルター、および文字フィルターは変更できません。 インデックスの更新要求で allowIndexDowntime フラグが true に設定されている場合に限り、既存のインデックスに新しい定義を追加できます。

PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true

この操作では、インデックスが数秒間オフラインになります。 インデックスがオフラインの間、インデックス作成やクエリの要求は失敗します。 インデックスがオンラインに戻った後、数分間、パフォーマンスと書き込み操作が一時的に損なわれる可能性があります。

URI パラメーター

パラメーター 説明
サービス名 必須です。 これを検索サービスの一意のユーザー定義名に設定します。
インデックス名 必須です。 要求 URI は、更新するインデックスの名前を指定します。
api-version 必須です。 現在の安定バージョンは です api-version=2020-06-30。 その他 のバージョンについては、「API のバージョン 」を参照してください。
allowIndexDowntime 省略可能。 既定では false です。 アナライザー、トークナイザー、トークン フィルター、文字フィルター、類似性プロパティの追加や変更など、特定の更新プログラムの場合は true に設定します。 インデックスは、更新の間はオフラインになります。通常は数秒以下です。

要求ヘッダー

次の表では、必須と省略可能の要求ヘッダーについて説明します。

フィールド 説明
Content-Type 必須です。 これを application/json
api-key 必須です。 api-key は Search サービスに対する要求の認証に使用されます。 これはサービスに固有の文字列値です。 更新要求には、(クエリ キーではなく) 管理者キーに設定されたヘッダーを含める api-key 必要があります。 API キーは、Azure portalの検索サービス ダッシュボードにあります。

要求本文

要求本文の構文は、 インデックスの作成と同じです。

既存のインデックスを更新する場合、本文には、保持する元の定義を含む完全なスキーマ定義を含める必要があります。 一般に、更新の最適なパターンは、GET を使用してインデックス定義を取得し、それを変更してから PUT で更新することです。

Response

要求が成功した場合、"204 No Content" が返されます。

既定では、応答本文は空になります。 ただし、要求ヘッダーが Preferreturn=representation設定されている場合、応答本文には更新されたインデックスの JSON が含まれます。 この場合、成功の状態コードは "200 OK" です。

関連項目