Aktivera cachelagring för inkrementell berikning 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.

Den här artikeln förklarar hur du lägger till cachelagring i en berikande pipeline så att du kan ändra steg för nedströms berikande utan att behöva återskapa i sin helhet varje gång. Som standard är en kompetensuppsättning tillståndslös, och om du ändrar någon del av dess sammansättning krävs en fullständig omkörning av indexeraren. Med en berikningscache kan indexeraren avgöra vilka delar av dokumentträdet som måste uppdateras baserat på ändringar som identifierats i kompetensuppsättningen eller indexerarens definitioner. Befintliga bearbetade utdata bevaras och återanvänds där det är möjligt.

Cachelagrat innehåll placeras i Azure Storage med hjälp av kontoinformation som du anger. Containern, med namnet ms-az-search-indexercache-<alpha-numerc-string>, skapas när du kör indexeraren. Det bör betraktas som en intern komponent som hanteras av söktjänsten och får inte ändras.

Förutsättningar

  • Azure Storage för lagring av cachelagrade berikanden. Lagringskontot måste vara generellt v2.

  • Om du bara behöver synkroniserad dokumentborttagning från både cacheminnet och indexet när blobar tas bort från datakällan aktiverar du en borttagningsprincip i indexeraren. Utan den här principen stöds inte dokumentborttagning från cacheminnet.

Du bör känna till hur du konfigurerar indexerare. Börja med indexerarens översikt och fortsätt sedan till kunskapsuppsättningar för att lära dig mer om berikande pipelines. Mer bakgrund om viktiga begrepp finns i inkrementell berikning.

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.

Aktivera på nya indexerare

Du kan använda Azure-portalen, förhandsversions-API:er eller Beta Azure SDK:er krävs för att aktivera en berikningscache på en indexerare.

  1. Till vänster väljer du Indexerare och sedan Lägg till indexerare.

  2. Ange ett indexerares namn och ett befintligt index, en datakälla och en kompetensuppsättning.

  3. Aktivera inkrementell cachelagring och ange Azure Storage-kontot.

    Screenshot of the portal option for enrichment cache.

Aktivera på befintliga indexerare

Använd följande steg för att lägga till cachelagring för befintliga indexerare som redan har en kompetensuppsättning. Som en engångsåtgärd återställer och kör du indexeraren igen i sin helhet för att läsa in cacheminnet.

Steg 1: Hämta indexerarens definition

Börja med en giltig arbetsindexerare som har följande komponenter: datakälla, kompetensuppsättning, index. Använd en API-klient och skicka en GET Indexer-begäran för att hämta indexeraren. När du använder förhandsversionen av API:et till GET-indexeraren läggs en "cache"-egenskap som är inställd på null till i definitionen automatiskt.

GET https://[YOUR-SEARCH-SERVICE].search.windows.net/indexers/[YOUR-INDEXER-NAME]?api-version=2021-04-30-Preview
    Content-Type: application/json
    api-key: [YOUR-ADMIN-KEY]

Steg 2: Ange cacheegenskapen

I indexdefinitionen ändrar du "cache" så att den innehåller följande obligatoriska och valfria egenskaper:

  • (Krävs) storageConnectionString måste anges till en Azure Storage-anslutningssträng.
  • (Valfritt) enableReprocessing boolesk egenskap (true som standard) anger att inkrementell berikning är aktiverat. Ange till false om du vill pausa inkrementell bearbetning medan andra resursintensiva åtgärder, till exempel indexering av nya dokument, pågår och sedan växla tillbaka till true senare.
POST https://[service name].search.windows.net/indexers?api-version=2021-04-30-Preview
    {
        "name": "<YOUR-INDEXER-NAME>",
        "targetIndexName": "<YOUR-INDEX-NAME>",
        "dataSourceName": "<YOUR-DATASOURCE-NAME>",
        "skillsetName": "<YOUR-SKILLSET-NAME>",
        "cache" : {
            "storageConnectionString" : "<YOUR-STORAGE-ACCOUNT-CONNECTION-STRING>",
            "enableReprocessing": true
        },
        "fieldMappings" : [],
        "outputFieldMappings": [],
        "parameters": []
    }

Steg 3: Återställa indexeraren

Återställ indexeraren krävs när du konfigurerar inkrementell berikning för befintliga indexerare för att säkerställa att alla dokument är i ett konsekvent tillstånd. Du kan använda portalen eller en API-klient för den här uppgiften.

POST https://[YOUR-SEARCH-SERVICE].search.windows.net/indexers/[YOUR-INDEXER-NAME]/reset?api-version=2021-04-30-Preview
    Content-Type: application/json
    api-key: [YOUR-ADMIN-KEY]

Steg 4: Spara indexeraren

Uppdatera Indexer (2021-04-30-Preview) med en PUT-begäran, där brödtexten i begäran innehåller "cache".

PUT https://[YOUR-SEARCH-SERVICE].search.windows.net/indexers/[YOUR-INDEXER-NAME]?api-version=2021-04-30-Preview
    Content-Type: application/json
    api-key: [YOUR-ADMIN-KEY]
    {
        "name" : "<YOUR-INDEXER-NAME>",
        ...
        "cache": {
            "storageConnectionString": "<YOUR-STORAGE-ACCOUNT-CONNECTION-STRING>",
            "enableReprocessing": true
        }
    }

Om du nu utfärdar en annan GET-begäran på indexeraren innehåller svaret från tjänsten en ID egenskap i cacheobjektet. Den alfanumeriska strängen läggs till i namnet på containern som innehåller alla cachelagrade resultat och mellanliggande tillstånd för varje dokument som bearbetas av den här indexeraren. ID:t används för att unikt namnge cachen i Blob Storage.

    "cache": {
        "ID": "<ALPHA-NUMERIC STRING>",
        "enableReprocessing": true,
        "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=<YOUR-STORAGE-KEY>;EndpointSuffix=core.windows.net"
    }

Steg 5: Kör indexeraren

Om du vill köra indexeraren kan du använda portalen eller API:et. Välj indexeraren i listan indexerare i portalen och välj Kör. En fördel med att använda portalen är att du kan övervaka indexerarens status, notera jobbets varaktighet och hur många dokument som bearbetas. Portalsidor uppdateras med några minuters mellanrum.

Du kan också använda REST för att köra indexeraren:

POST https://[YOUR-SEARCH-SERVICE].search.windows.net/indexers/[YOUR-INDEXER-NAME]/run?api-version=2020-06-30-Preview
Content-Type: application/json
api-key: [YOUR-ADMIN-KEY]

Kommentar

En återställning och omkörning av indexeraren resulterar i en fullständig återskapande så att innehållet kan cachelagras. Alla kognitiva berikningar kommer att köras på nytt i alla dokument. Återanvändning av berikat innehåll från cacheminnet börjar när cacheminnet har lästs in.

Sök efter cachelagrade utdata

Hitta cachen i Azure Storage under Blob-container. Containernamnet är ms-az-search-indexercache-<some-alphanumeric-string>.

En cache skapas och används av en indexerare. Innehållet är inte läsbart för människor.

Om du vill kontrollera om cachen är i drift ändrar du en kompetensuppsättning och kör indexeraren och jämför sedan före-och-efter-mått för körningstid och antal dokument.

Kunskapsuppsättningar som inkluderar bildanalys och optisk teckenigenkänning (OCR) av skannade dokument gör bra testfall. Om du ändrar en underordnad textfärdighet eller någon färdighet som inte är bildrelaterad kan indexeraren hämta allt tidigare bearbetat bild- och OCR-innehåll från cacheminnet, uppdatera och bearbeta endast de textrelaterade ändringar som anges i dina redigeringar. Du kan förvänta dig att se färre dokument i antalet indexerares körningsdokument, kortare körningstider och färre avgifter på din faktura.

Filuppsättningensom används i självstudierna cog-search-demo är ett användbart testfall eftersom den innehåller 14 filer med olika format JPG, PNG, HTML, DOCX, PPTX och andra typer. Ändra en till es eller ett annat språk i textöversättningsfärdigheten för proof-of-concept-testning av inkrementell berikning.

Vanliga fel

Följande fel uppstår om du glömmer att ange en api-version för förhandsversion på begäran:

"The request is invalid. Details: indexer : A resource without a type name was found, but no expected type was specified. To allow entries without type information, the expected type must also be specified when the model is specified."

Ett fel med 400 felaktig begäran inträffar också om du saknar ett indexerarekrav. Felmeddelandet anger eventuella beroenden som saknas.

Nästa steg

Inkrementell berikning gäller för indexerare som innehåller kompetensuppsättningar, vilket ger återanvändbart innehåll för både index och kunskapslager. Följande länkar innehåller mer information om cachelagring och kompetensuppsättningar.