Uppdateringsindex (REST API för Azure AI Search)
För att ändra ett befintligt index krävs vanligtvis en indexborttagning och återskapande, förutom följande schemaändringar:
Lägga till nya fält i en fältsamling
Lägga till nyligen skapade fält i en förslagsföreläsare
Lägga till eller ändra bedömningsprofiler
Lägga till eller ändra krypteringsnycklar
Lägga till nya anpassade analysverktyg
Ändra CORS-alternativ
Ändra befintliga fält med någon av dessa tre ändringar:
- Ändra
retrievable
(värden är sanna eller falska) - Ändra
searchAnalyzer
(används vid frågetillfället) - Lägg till eller ändra
synonymMaps
(används vid frågetillfället)
- Ändra
Om du vill lägga till dessa uppdateringar lägger du till indexnamnet på begärande-URI:n. I begärandetexten inkluderar du en fullständigt angiven indexdefinition med dina ändringar.
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
Befintliga fält och de flesta fältattribut kan inte tas bort eller ändras, och fält kan inte heller läggas till i förslagsgivare. Endast nyligen skapade fält kan läggas till i en suggester
.
När ett nytt fält läggs till får alla befintliga dokument automatiskt ett null-värde för det fältet. Inget annat lagringsutrymme förbrukas förrän något av två inträffar: ett värde anges för det nya fältet (med sammanslagning) eller så läggs nya dokument till.
Befintliga analysverktyg, tokeniserare, tokenfilter och teckenfilter kan inte ändras. Det går bara att lägga till nya i ett redan befintligt index när allowIndexDowntime
flaggan är aktiverad i begäran om indexuppdatering. Samma regel gäller när du lägger till ett inledande vektorfält i ett befintligt index som har upprättats med hjälp av ett API som inte har stöd för vektorsökning, särskilt före REST API-version 2023-07-01 Preview.
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
Den här åtgärden tar ditt index offline i några sekunder. Indexering och frågebegäranden misslyckas när indexet är offline. Prestanda- och skrivåtgärder kan tillfälligt försämras i flera minuter efter att indexet är online igen.
URI-parametrar
Parameter | Beskrivning |
---|---|
tjänstnamn | Krävs. Ange det unika, användardefinierade namnet på söktjänsten. |
indexnamn | Krävs. Begärande-URI anger namnet på indexet som ska uppdateras. |
api-version | Krävs. En lista över versioner som stöds finns i API-versioner . |
allowIndexDowntime | Valfritt. Falskt som standard. Ange till true för vissa uppdateringar, till exempel att lägga till eller ändra en analysator, tokeniserare, tokenfilter, teckenfilter eller likhetsegenskap. Indexet tas offline under uppdateringen, vanligtvis inte mer än flera sekunder. |
Rubriker för begäran
I följande tabell beskrivs nödvändiga och valfria begärandehuvuden.
Fält | Description |
---|---|
Content-Type | Krävs. Ange detta till application/json |
api-key | Valfritt om du använder Azure-roller och en ägartoken anges på begäran, annars krävs en nyckel. Uppdateringsbegäranden måste innehålla en api-key rubrik inställd på din administratörsnyckel (till skillnad från en frågenyckel). Mer information finns i Ansluta till Azure AI Search med nyckelautentisering . |
Begärandetext
Syntaxen för begärandetexten är samma som för Skapa index.
När du uppdaterar ett befintligt index måste brödtexten innehålla den fullständiga schemadefinitionen, inklusive alla ursprungliga definitioner som du vill bevara. I allmänhet är det bästa mönstret för uppdateringar att hämta indexdefinitionen med en GET, ändra den och sedan uppdatera den med PUT.
Svarsåtgärder
För en lyckad begäran bör du se "204 Inget innehåll".
Svarstexten är som standard tom. Men om Prefer
begärandehuvudet är inställt på return=representation
innehåller svarstexten JSON för det uppdaterade indexet. I det här fallet är statuskoden "200 OK".