Inkrementell berikning och cachelagring i Azure AI Search
Viktigt!
Den här funktionen är i offentlig förhandsversion under kompletterande användningsvillkor. REST API för förhandsversion stöder den här funktionen.
Inkrementell berikning avser användningen av cachelagrade berikanden under körningen av kompetensuppsättningar så att endast nya och ändrade kunskaper och dokument debiteras betala per användning-bearbetningsavgifter för API-anrop till Azure AI-tjänster. Cacheminnet innehåller utdata från dokumentsprickor, plus utdata från varje kunskap för varje dokument. Även om cachelagring är fakturerbar (den använder Azure Storage) minskas den totala kostnaden för berikning eftersom kostnaderna för lagring är mindre än bildextrahering och AI-bearbetning.
För att säkerställa synkroniseringen mellan dina datakälldata och ditt index är det viktigt att förstå dina unika krav på ändring och borttagning av datakällor . Den här guiden beskriver specifikt hur du hanterar inkrementella ändringar när det gäller din kompetensbearbetning och hur du använder cache för detta ändamål.
När du aktiverar cachelagring utvärderar indexeraren dina uppdateringar för att avgöra om befintliga berikningar kan hämtas från cachen. Bild- och textinnehåll från dokumentets sprickfas, plus kunskapsutdata som är uppströms eller ortoggoniska till dina redigeringar, kommer sannolikt att återanvändas.
När kunskapsuppsättningen har bearbetats skrivs de uppdaterade resultaten tillbaka till cacheminnet och även till sökindexet eller kunskapsarkivet.
Begränsningar
Varning
Om du använder SharePoint Online-indexeraren (förhandsversion) bör du undvika inkrementell berikning. Under vissa omständigheter blir cachen ogiltig, vilket kräver en indexerareåterställning och körning, om du väljer att läsa in den igen.
Cachekonfiguration
Fysiskt lagras cachen i en blobcontainer i ditt Azure Storage-konto, ett per indexerare. Varje indexerare tilldelas en unik och oföränderlig cacheidentifierare som motsvarar den container som den använder.
Cachen skapas när du anger egenskapen "cache" och kör indexeraren. Endast berikat innehåll kan cachelagras. Om indexeraren inte har någon bifogad kompetensuppsättning gäller inte cachelagring.
I följande exempel visas en indexerare med cachelagring aktiverat. Se Aktivera cachelagring av berikning för fullständiga instruktioner.
Om du vill använda cacheegenskapen kan du använda 2020-06-30-preview eller senare när du skapar eller uppdaterar en indexerare. Vi rekommenderar det senaste förhandsversions-API:et.
POST https://[search service name].search.windows.net/indexers?api-version=2024-05-01-rreview
{
"name": "myIndexerName",
"targetIndexName": "myIndex",
"dataSourceName": "myDatasource",
"skillsetName": "mySkillset",
"cache" : {
"storageConnectionString" : "<Your storage account connection string>",
"enableReprocessing": true
},
"fieldMappings" : [],
"outputFieldMappings": [],
"parameters": []
}
Cachehantering
Cachens livscykel hanteras av indexeraren. Om en indexerare tas bort tas dess cache också bort. cache
Om egenskapen på indexeraren är inställd på null eller om anslutningssträng ändras tas den befintliga cachen bort vid nästa indexeringskörning.
Även om inkrementell berikning är utformad för att identifiera och svara på ändringar utan åtgärder från din sida, finns det parametrar som du kan använda för att anropa specifika beteenden:
- Prioritera nya dokument
- Kringgå kompetensuppsättningskontroller
- Kringgå datakällans kontroller
- Utvärdering av force skillset
Prioritera nya dokument
Cacheegenskapen innehåller en enableReprocessing
parameter. Den används för att styra bearbetningen över inkommande dokument som redan representeras i cacheminnet. När det är sant (standard) bearbetas dokument som redan finns i cacheminnet när du kör indexeraren igen, förutsatt att kunskapsuppdateringen påverkar dokumentet.
När det är falskt bearbetas inte befintliga dokument på nytt, vilket effektivt prioriterar nytt inkommande innehåll framför befintligt innehåll. Du bör endast ange enableReprocessing till false tillfälligt. Om enableReprocessing är inställt på true för det mesta ser du till att alla dokument, både nya och befintliga, är giltiga enligt den aktuella kompetensuppsättningsdefinitionen.
Kringgå kompetensuppsättningsutvärdering
Att ändra en färdighet och omarbetning av den kompetensen går vanligtvis hand i hand. Vissa ändringar av en färdighet bör dock inte resultera i ombearbetning (till exempel distribution av en anpassad färdighet till en ny plats eller med en ny åtkomstnyckel). Troligtvis är dessa perifera ändringar som inte har någon verklig inverkan på innehållet i själva kunskapsutdata.
Om du vet att en ändring av färdigheten verkligen är ytlig bör du åsidosätta kunskapsutvärderingen genom att ange parametern disableCacheReprocessingChangeDetection
till true:
- Anropa Update Skillset och ändra definitionen för kompetensuppsättningen.
- Lägg till parametern "disableCacheReprocessingChangeDetection=true" i begäran.
- Skicka ändringen.
Om du anger den här parametern ser du till att endast uppdateringar av definitionen för kompetensuppsättningen bekräftas och att ändringen inte utvärderas för effekter på den befintliga cachen. Använd en förhandsversion av API:et 2020-06-30-Preview eller senare. Vi rekommenderar det senaste förhandsversions-API:et.
PUT https://[servicename].search.windows.net/skillsets/[skillset name]?api-version=2024-05-01-preview&disableCacheReprocessingChangeDetection
Kringgå verifieringskontroller av datakällor
De flesta ändringar i en datakällas definition gör cachen ogiltig. För scenarier där du vet att en ändring inte bör ogiltigförklara cacheminnet, till exempel ändra en anslutningssträng eller rotera nyckeln på lagringskontot, lägger du dock till parametern ignoreResetRequirement
i datakälluppdateringen. Om du anger den här parametern till true kan incheckningen gå igenom, utan att utlösa ett återställningsvillkor som skulle leda till att alla objekt återskapas och fylls i från grunden.
PUT https://[search service].search.windows.net/datasources/[data source name]?api-version=2024-05-01-preview&ignoreResetRequirement
Utvärdering av force skillset
Syftet med cachen är att undvika onödig bearbetning, men anta att du gör en ändring i en färdighet som indexeraren inte identifierar (till exempel att ändra något i extern kod, till exempel en anpassad färdighet).
I det här fallet kan du använda återställningskunskaper för att framtvinga ombearbetning av en viss färdighet, inklusive eventuella underordnade kunskaper som är beroende av den färdighetens utdata. Det här API:et accepterar en POST-begäran med en lista över färdigheter som ska ogiltigförklaras och markeras för ombearbetning. När du har återställt kunskaper följer du med en Run Indexer-begäran för att anropa pipelinebearbetningen.
Cachelagrat om specifika dokument
Om du återställer en indexerare kommer alla dokument i sök corpus att bearbetas på nytt.
I scenarier där endast ett fåtal dokument behöver bearbetas igen använder du Återställ dokument (förhandsversion) för att tvinga fram ombearbetning av specifika dokument. När ett dokument återställs ogiltigförklarar indexeraren cachen för dokumentet, som sedan bearbetas igen genom att läsa det från datakällan. Mer information finns i Köra eller återställa indexerare, färdigheter och dokument.
För att återställa specifika dokument innehåller begäran en lista över dokumentnycklar som lästa från sökindexet. Om nyckeln mappas till ett fält i den externa datakällan ska det värde som du anger vara det som används i sökindexet.
Beroende på hur du anropar API:et lägger begäran antingen till, skriver över eller köar nyckellistan:
Genom att anropa API:et flera gånger med olika nycklar läggs de nya nycklarna till i listan över återställning av dokumentnycklar.
Om du anropar API:et med frågesträngsparametern "overwrite" inställd på true skrivs den aktuella listan över dokumentnycklar som ska återställas med begärans nyttolast.
Att anropa API:et resulterar bara i att dokumentnycklarna läggs till i arbetskön som indexeraren utför. När indexeraren anropas härnäst, antingen enligt schema eller på begäran, prioriteras bearbetningen av dokumentnycklarna för återställning innan andra ändringar från datakällan.
I följande exempel visas en begäran om återställningsdokument:
POST https://[search service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2024-05-01-preview
{
"documentKeys" : [
"key1",
"key2",
"key3"
]
}
Ändringar som gör cachen ogiltig
När du aktiverar en cache utvärderar indexeraren ändringar i pipelinesammansättningen för att avgöra vilket innehåll som kan återanvändas och vilka som behöver bearbetas. Det här avsnittet räknar upp ändringar som ogiltigförklarar cachen direkt, följt av ändringar som utlöser inkrementell bearbetning.
En ogiltig ändring är en där hela cacheminnet inte längre är giltigt. Ett exempel på en ogiltig ändring är en där datakällan uppdateras. Här är den fullständiga listan över ändringar i någon del av indexerarens pipeline som skulle göra cachen ogiltig:
- Ändra datakällans typ
- Ändra datakällans container
- Ändra autentiseringsuppgifter för datakälla
- Ändra princip för ändringsidentifiering av datakälla
- Ändra identifieringsprincip för borttagning av datakälla
- Ändra indexeringsfältmappningar
- Ändra indexerarparametrar:
- Parsningsläge
- Undantagna filnamnstillägg
- Indexerade filnamnstillägg
- Indexlagringsmetadata endast för överdimensionerade dokument
- Avgränsade textrubriker
- Avgränsad textavgränsare
- Dokumentrot
- Bildåtgärd (Ändringar i hur bilder extraheras)
Ändringar som utlöser inkrementell bearbetning
Den inkrementella bearbetningen utvärderar din kompetensuppsättningsdefinition och avgör vilka färdigheter som ska köras igen. Den uppdaterar även selektivt de berörda delarna av dokumentträdet. Här är den fullständiga listan över ändringar som resulterar i inkrementell berikning:
- Ändra färdighetstyp (OData-typen för färdigheten uppdateras)
- Kunskapsspecifika parametrar uppdateras, till exempel en URL, standardvärden eller andra parametrar
- Kunskapsutdata ändras, färdigheten returnerar ytterligare eller olika utdata
- Förändringar i kunskapsinmatning som resulterar i olika anor, kunskapslänkning har ändrats
- Eventuella uppströms kompetensförstållingar, om en färdighet som ger indata till den här färdigheten uppdateras
- Uppdateringar av kunskapsarkivets projektionsplats, resulterar i omprojekteringsdokument
- Ändringar i kunskapslagerprojektioner, resulterar i omprojekteringsdokument
- Mappningar av utdatafält som ändrats på en indexerare resulterar i att dokument projiceras på nytt till indexet
API:er som används för cachelagring
REST API-versionen 2020-06-30-Preview
eller senare ger inkrementell berikning genom extra egenskaper för indexerare. Vi rekommenderar det senaste förhandsversions-API:et.
Kunskapsuppsättningar och datakällor kan använda den allmänt tillgängliga versionen. Förutom referensdokumentationen kan du läsa Konfigurera cachelagring för inkrementell berikning för mer information om ordningen på åtgärder.
Skapa eller uppdatera indexeraren (api-version=2024-05-01-preview)
Skapa eller uppdatera kompetensuppsättning (api-version=2024-07-01) (ny URI-parameter på begäran)
Skapa eller uppdatera datakälla (api-version=2024-07-01), när den anropas med en förhandsversion av API:et, innehåller en ny parameter med namnet "ignoreResetRequirement", som ska anges till true när uppdateringsåtgärden inte ska ogiltigförklara cacheminnet. Använd "ignoreResetRequirement" sparsamt eftersom det kan leda till oavsiktlig inkonsekvens i dina data som inte identifieras enkelt.
Nästa steg
Inkrementell berikning är en kraftfull funktion som utökar ändringsspårningen till kompetensuppsättningar och AI-berikande. Inkrementell berikning möjliggör återanvändning av befintligt bearbetat innehåll när du itererar över kompetensuppsättningsdesign. Som ett nästa steg aktiverar du cachelagring på dina indexerare.