Index aktualisieren (Azure AI Search-REST-API)

Das Ändern eines vorhandenen Indexes erfordert in der Regel ein Löschen und neuerstellen des Indexes, mit Ausnahme der folgenden Schemaänderungen:

  • Hinzufügen neuer Felder zu einer Fields-Auflistung

  • Hinzufügen neu erstellter Felder zu einem Vorschlagsgeber

  • Hinzufügen oder Ändern von Bewertungsprofilen

  • Hinzufügen oder Ändern von Verschlüsselungsschlüsseln

  • Hinzufügen neuer benutzerdefinierter Analysetools

  • Ändern von CORS-Optionen

  • Ändern Sie vorhandene Felder mit einer der folgenden drei Änderungen:

    • Änderung retrievable (Werte sind true oder false)
    • Änderung searchAnalyzer (wird zur Abfragezeit verwendet)
    • Hinzufügen oder Ändern synonymMaps (wird zur Abfragezeit verwendet)

Um diese Updates hinzuzufügen, fügen Sie den Indexnamen auf den Anforderungs-URI ein. Fügen Sie im Anforderungstext eine vollständig angegebene Indexdefinition mit Ihren Änderungen ein.

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

Vorhandene Felder und die meisten Feldattribute können weder gelöscht oder geändert werden, noch können Felder zu Vorschlagsgebern hinzugefügt werden. Nur neu erstellte Felder können einem suggesterhinzugefügt werden.

Wenn ein neues Feld hinzugefügt wird, erhalten alle vorhandenen Dokumente automatisch einen NULL-Wert für dieses Feld. Kein anderer Speicherplatz wird verbraucht, bis eine von zwei Dingen auftritt: Ein Wert wird für das neue Feld (mithilfe von Merge) bereitgestellt oder neue Dokumente werden hinzugefügt.

Vorhandene Analysetools, Tokenisierer, Tokenfilter und Zeichenfilter können nicht geändert werden. Das Hinzufügen neuer Zu einem bereits vorhandenen Index ist nur möglich, wenn das allowIndexDowntime Flag in der Indexaktualisierungsanforderung aktiviert ist. Die gleiche Regel gilt beim Hinzufügen eines anfänglichen Vektorfelds zu einem bereits vorhandenen Index, der mithilfe einer API erstellt wurde, die die Vektorsuche nicht unterstützte, insbesondere vor der REST-API-Version 2023-07-01 Preview.

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

Mit diesem Vorgang wird Ihr Index für einige Sekunden offlinegeschaltet. Indizierungs- und Abfrageanforderungen schlagen fehl, während der Index offline ist. Leistungs- und Schreibvorgänge können einige Minuten lang vorübergehend beeinträchtigt werden, nachdem der Index wieder online ist.

URI-Parameter

Parameter BESCHREIBUNG
Dienstname Erforderlich. Legen Sie dies auf den eindeutigen, benutzerdefinierten Namen Ihres Suchdiensts fest.
Indexname Erforderlich. Der Anforderungs-URI gibt den Namen des zu aktualisierenden Indexes an.
api-version Erforderlich. Eine Liste der unterstützten Versionen finden Sie unter API-Versionen .
allowIndexDowntime Optional. Der Standardwert ist gleich „False“. Legen Sie für bestimmte Updates auf true fest, z. B. das Hinzufügen oder Ändern einer Analyse-, Tokenisierungs-, Tokenfilter-, char-Filter- oder Ähnlichkeitseigenschaft. Der Index wird während der Aktualisierung offline geschaltet, in der Regel nicht mehr als mehrere Sekunden.

Anforderungsheader

Die folgende Tabelle beschreibt die erforderlichen und optionalen Anforderungsheader.

Felder BESCHREIBUNG
Content-Type Erforderlich. Auf application/json
api-key Optional, wenn Sie Azure-Rollen verwenden und ein Bearertoken für die Anforderung bereitgestellt wird, andernfalls ist ein Schlüssel erforderlich. Updateanforderungen müssen einen api-key Header enthalten, der auf Ihren Administratorschlüssel (im Gegensatz zu einem Abfrageschlüssel) festgelegt ist. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure AI Search mithilfe der Schlüsselauthentifizierung .

Anforderungstext

Die Syntax des Anforderungstexts ist identisch mit der Syntax für Index erstellen.

Wenn Sie einen vorhandenen Index aktualisieren, muss der Text die vollständige Schemadefinition enthalten, einschließlich aller ursprünglichen Definitionen, die Sie beibehalten möchten. Im Allgemeinen besteht das beste Muster für Updates darin, die Indexdefinition mit einer GET abzurufen, zu ändern und dann mit PUT zu aktualisieren.

Antwort

Bei einer erfolgreichen Anforderung sollte "204 No Content" angezeigt werden.

Standardmäßig ist der Antworttext leer. Wenn der Prefer Anforderungsheader jedoch auf return=representationfestgelegt ist, enthält der Antworttext den JSON-Code des aktualisierten Indexes. In diesem Fall lautet der Erfolg status Code "200 OK".

Weitere Informationen