インデックスの更新 (Azure AI 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 値が自動的に取得されます。 新しいフィールドに値が指定されるか (マージを使用)、または新しいドキュメントが追加されるまで、他のストレージ領域は使用されません。
既存のアナライザー、トークナイザー、トークン フィルター、および文字フィルターは変更できません。 既存のインデックスに新しいインデックスを追加できるのは、インデックス更新要求でフラグがオンになっている場合 allowIndexDowntime
のみです。 ベクター検索をサポートしていない API (特に REST API バージョン 2023-07-01 Preview より前) を使用して確立された既存のインデックスに初期ベクター フィールドを追加する場合も、同じ規則が適用されます。
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
この操作では、インデックスが数秒間オフラインになります。 インデックスがオフラインの間、インデックス作成とクエリ要求は失敗します。 インデックスがオンラインに戻った後、数分間、パフォーマンスと書き込み操作が一時的に損なわれる可能性があります。
URI パラメーター
パラメーター | 説明 |
---|---|
サービス名 | 必須。 これを検索サービスの一意のユーザー定義名に設定します。 |
インデックス名 | 必須。 要求 URI は、更新するインデックスの名前を指定します。 |
api-version | 必須。 サポートされている バージョンの 一覧については、「API のバージョン」を参照してください。 |
allowIndexDowntime | 省略可能。 既定では false です。 アナライザー、トークナイザー、トークン フィルター、文字フィルター、類似性プロパティの追加や変更など、特定の更新プログラムの場合は true に設定します。 インデックスは更新中にオフラインになります。通常は数秒以下です。 |
要求ヘッダー
次の表では、必須と省略可能の要求ヘッダーについて説明します。
フィールド | 説明 |
---|---|
Content-Type | 必須。 これを application/json |
api-key |
Azure ロールを使用していて、要求でベアラー トークンが提供されている場合は省略可能。それ以外の場合はキーが必要です。 更新要求には、(クエリ キーではなく) 管理者キーに設定されたヘッダーを含める api-key 必要があります。 詳細については、「 キー認証を使用して Azure AI Search に接続 する」を参照してください。 |
要求本文
要求本文の構文は、 インデックスの作成と同じです。
既存のインデックスを更新する場合、本文には、保持する元の定義を含む完全なスキーマ定義が含まれている必要があります。 一般に、更新の最適なパターンは、GET を使用してインデックス定義を取得し、それを変更してから PUT で更新することです。
Response
要求が成功した場合、"204 No Content" が返されます。
既定では、応答本文は空です。 ただし、要求ヘッダーが Prefer
に return=representation
設定されている場合、応答本文には更新されたインデックスの JSON が含まれます。 この場合、成功状態コードは "200 OK" です。