Kunskapslager i Azure Cognitive Search

Kunskapslager är en data mottagare som skapats av en Cognitive Search AI-berikningspipeline som lagrar berikat innehåll i tabeller och blobcontainrar i Azure Storage för oberoende analys eller nedströmsbearbetning i icke-sökscenarier, till exempel kunskapsutvinning.

Om du tidigare har använt kognitiva kunskaper vet du redan att kunskapsuppsättningar flyttar ett dokument genom en sekvens med berikande som anropar atomiska transformeringar, till exempel igenkänning av entiteter eller översättning av text. Resultatet kan vara ett sökindex eller projektioner i ett kunskapslager. De två utdata, sökindex och kunskapslager, är ömsesidigt uteslutande produkter från samma pipeline. härleds från samma indata, men resulterar i utdata som är strukturerade, lagrade och används i olika program.

Pipeline med kompetensuppsättning

Fysiskt finns det ett kunskapslager Azure Storage,antingen Azure Table Storage, Azure Blob Storage eller båda. Alla verktyg eller processer som kan ansluta till Azure Storage kan använda innehållet i ett kunskapslager.

I Storage Browser ser ett kunskapslager ut som vilken samling tabeller, objekt eller filer som helst. I följande exempel visas ett kunskapslager som består av tre tabeller med fält som antingen förs vidare från datakällan eller skapas via berikande åtgärder (se "sentimentpoäng" och "translated_text").

Läsa och skriva färdigheter från berikande träd

Fördelar med kunskapslager

De främsta fördelarna med ett kunskapslager är tvåfaldig: flexibel åtkomst till innehåll och möjligheten att forma data.

Till skillnad från ett sökindex som bara kan nås via frågor i Cognitive Search kan ett kunskapslager användas av alla verktyg, appar eller processer som stöder anslutningar till Azure Storage. Den här flexibiliteten öppnar nya scenarier för att använda analyserat och berikat innehåll som produceras av en berikningspipeline.

Samma kompetensuppsättning som berikar data kan också användas för att forma data. Vissa verktyg som Power BI fungerar bättre med tabeller, medan en datavetenskapsarbetsbelastning kan kräva en komplex datastruktur i ett blobformat. Genom att lägga till en Formarfärdighet i en kunskapsuppsättning får du kontroll över formen på dina data. Du kan sedan skicka dessa former till projektioner, antingen tabeller eller blobar, för att skapa fysiska datastrukturer som överensstämmer med de data som är avsedda att användas.

I följande video förklaras både dessa fördelar och mycket mer.

Definition av kunskapslager

Ett kunskapslager definieras i en kunskapsuppsättningsdefinition och har två komponenter:

  • En anslutningssträng som ska Azure Storage

  • Projektioner som avgör om kunskapslagret består av tabeller, objekt eller filer.

Elementet projections är en matris. Du kan skapa flera uppsättningar med kombinationer av table-object-file i ett kunskapslager.

"knowledgeStore": {
   "storageConnectionString":"<YOUR-AZURE-STORAGE-ACCOUNT-CONNECTION-STRING>",
   "projections":[
      {
         "tables":[ ],
         "objects":[ ],
         "files":[ ]
      }
   }

Den typ av projektion som du anger i den här strukturen avgör vilken typ av lagring som används av kunskapslagret.

  • tablesprojektberikat innehåll till Table Storage. Definiera en tabellprojektion när du behöver tabellrapporteringsstrukturer för indata till analysverktyg eller exportera som dataramar till andra datalager. Du kan ange flera inom tables samma projektionsgrupp för att få en delmängd eller ett korsavsnitt av berikade dokument. I samma projektionsgrupp bevaras tabellrelationer så att du kan arbeta med alla.

    Det projicerade innehållet aggregeras eller normaliseras inte. Följande skärmbild visar en tabell, sorterad efter nyckelfras, med det överordnade dokumentet angivet i den intilliggande kolumnen. Till skillnad från datainmatning under indexering finns det ingen språklig analys eller aggregering av innehåll. Pluralformulär och skillnader i höljet betraktas som unika instanser.

    Skärmbild av nyckelfraser och dokument i en tabell

  • objects projicera JSON-dokument till Blob Storage. Den fysiska representationen av object en är en hierarkisk JSON-struktur som representerar ett berikat dokument.

  • files projicera bildfiler till Blob Storage. En file är en bild som extraheras från ett dokument och överförs intakt till Blob Storage. Även om den heter "files" visas den i Blob Storage inte file storage.

Skapa ett kunskapslager

Om du vill skapa ett kunskapslager använder du portalen eller ett API. Du behöver Azure Storage,en kunskapsuppsättningoch en indexerare. Eftersom indexerare kräver ett sökindex måste du också ange en indexdefinition.

Gå med portal metoden för den snabbaste vägen till ett färdigt kunskapslager. Du kan också välja REST API för en djupare förståelse av hur objekt definieras och relateras.

Skapa ditt första kunskapslager i fyra steg med hjälp av guiden Importera data.

  1. Definiera din datakälla

  2. Definiera din kunskapsuppsättning och ange ett kunskapslager.

  3. Definiera ett indexschema. Guiden kräver det och kan här framtjäna en åt dig.

  4. Kör guiden. Extrahering, berikning och lagring sker i det här sista steget.

Guiden automatiserar uppgifter som annars skulle behöva hanteras manuellt. Mer specifikt skapas både formning och projektioner (definitioner av fysiska datastrukturer i Azure Storage) åt dig.

Anslut med appar

När berikandena finns i lagringen kan alla verktyg eller tekniker som ansluter till Azure Blob eller Table Storage användas för att utforska, analysera eller använda innehållet. Följande lista är en början:

  • Storage Browser för att visa berikad dokumentstruktur och innehåll. Överväg detta som baslinjeverktyg för att visa innehåll i kunskapslagret.

  • Power BI för rapportering och analys.

  • Azure Data Factory för ytterligare manipulering.

Innehållslivscykel

Varje gång du kör indexeraren och kunskapsuppsättningen uppdateras kunskapslagret om kunskapsuppsättningen eller underliggande källdata har ändrats. Alla ändringar som hämtas av indexeraren sprids genom berikningsprocessen till projektionerna i kunskapslagret, vilket säkerställer att dina projicerade data är en aktuell representation av innehållet i den ursprungliga datakällan.

Anteckning

Du kan redigera data i projektionerna, men eventuella ändringar skrivs över vid nästa pipelineanrop, förutsatt att dokumentet i källdata uppdateras.

Ändringar i källdata

För datakällor som stöder ändringsspårning bearbetar en indexerare nya och ändrade dokument och kringgår befintliga dokument som redan har bearbetats. Tidsstämpelinformationen varierar beroende på datakälla, men i en blobcontainer tittar indexeraren på datumet för att avgöra vilka blobar som lastmodified behöver matas in.

Ändringar i en kunskapsuppsättning

Om du gör ändringar i en kunskapsuppsättning bör du aktivera cachelagring av berikade dokument för att återanvända befintliga berikande komponenter där det är möjligt.

Utan inkrementell cachelagring bearbetar indexeraren alltid dokument i vattenmärkesordning, utan att gå bakåt. För blobar skulle indexeraren bearbeta blobar sorterade efter , oavsett eventuella ändringar i lastModified indexerarinställningarna eller kompetensuppsättningen. Om du ändrar en kunskapsuppsättning uppdateras inte tidigare bearbetade dokument för att återspegla den nya kompetensuppsättningen. Dokument som bearbetas efter ändringen av kunskapsuppsättningen använder den nya kompetensuppsättningen, vilket resulterar i att indexdokument är en blandning av gamla och nya kompetensuppsättningar.

Med inkrementell cachelagring och efter en uppdatering av kunskapsuppsättningen återanvänder indexeraren alla berikanden som inte påverkas av kunskapsuppsättningsändringen. Överordnade berikanden hämtas från cachen, liksom alla berikan som är oberoende och isolerade från den kompetens som har ändrats.

Borttagningar

Även om en indexerare skapar och uppdaterar strukturer och innehåll i Azure Storage, tas de inte bort. Projektioner fortsätter att finnas även när indexeraren eller kunskapsuppsättningen tas bort. Som ägare till lagringskontot bör du ta bort en projektion om den inte längre behövs.

Nästa steg

Kunskapslager erbjuder beständighet för berikade dokument, vilket är användbart när du utformar en kunskapsuppsättning eller skapar nya strukturer och innehåll för användning av alla klientprogram som kan komma åt ett Azure Storage konto.

Den enklaste metoden för att skapa berikade dokument är via portalen ,men du kan också använda Postman och REST API, vilket är mer användbart om du vill ha insikter om hur objekt skapas och refereras programmatiskt.