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)
- Änderung
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 suggester
hinzugefü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=representation
festgelegt ist, enthält der Antworttext den JSON-Code des aktualisierten Indexes. In diesem Fall lautet der Erfolg status Code "200 OK".