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)

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=representationinnehåller svarstexten JSON för uppdaterat index. I det här fallet blir statuskoden "200 OK.

Se även