Uppdatera index (Azure Cognitive Search REST API)
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 en av två saker inträffar: ett värde anges för det nya fältet (med sammanslagning) eller nya dokument läggs till.
Befintliga analysverktyg, tokeniserare, tokenfilter och teckenfilter kan inte ändras. Nya kan bara läggas till i ett befintligt index om allowIndexDowntime
flaggan är inställd på true i begäran om indexuppdatering:
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. Den aktuella stabila versionen är api-version=2020-06-30 . Se API-versioner för fler versioner. |
allowIndexDowntime | Valfritt. Falskt som standard. Ange till sant för vissa uppdateringar, till exempel att lägga till eller ändra en analysator, tokeniserare, tokenfilter, teckenfilter eller likhetsegenskap. Indexet tas offline under uppdateringens varaktighet, 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 | Krävs. api-key Används för att autentisera begäran till din tjänsten Search. Det är ett strängvärde som är unikt för din tjänst. Uppdateringsbegäranden måste innehålla en api-key rubrik inställd på administratörsnyckeln (till skillnad från en frågenyckel). Du hittar API-nyckeln på instrumentpanelen för söktjänsten i Azure Portal. |
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 uppdaterat index. I det här fallet blir statuskoden "200 OK.