インデックスの更新 (AZURE COGNITIVE SEARCH REST API)

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

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

  • 新しく作成したフィールドを 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 値が自動的に取得されます。 新しいフィールドに値が指定されるか (マージを使用)、または新しいドキュメントが追加されるまで、他のストレージ領域は使用されません。

既存のアナライザー、トークナイザー、トークン フィルター、char フィルターは変更できません。 インデックスの更新要求で 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 で更新することです。

応答

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

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

関連項目