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.

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. Observera att när du lägger till cacheegenskapen använder du en förhandsversion av API-versionen, 2020-06-30-Preview eller senare, på begäran.

POST https://[search service name].search.windows.net/indexers?api-version=2020-06-30-Preview
    {
        "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

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:

  1. Anropa Update Skillset och ändra definitionen för kompetensuppsättningen.
  2. Lägg till parametern "disableCacheReprocessingChangeDetection=true" i begäran.
  3. 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.

PUT https://[servicename].search.windows.net/skillsets/[skillset name]?api-version=2020-06-30-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=2020-06-30-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=2020-06-30-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 till kunskapsarkivets projektionsplats resulterar det 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 ytterligare egenskaper för indexerare. 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.

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.