Dataimport i Azure AI Search
I Azure AI Search körs frågor över användarägt innehåll som läses in i ett sökindex. Den här artikeln beskriver de två grundläggande arbetsflödena för att fylla i ett index: skicka dina data till indexet programmatiskt eller hämta data med hjälp av en sökindexerare.
Båda metoderna läser in dokument från en extern datakälla. Även om du kan skapa ett tomt index är det inte frågebart förrän du lägger till innehållet.
Kommentar
Om AI-berikning eller integrerad vektorisering är lösningskrav måste du använda pull-modellen (indexerare) för att läsa in ett index. Kompetensuppsättningar är kopplade till indexerare och körs inte oberoende av varandra.
Skicka data till ett index
Push-modell är en metod som använder API:er för att ladda upp dokument till ett befintligt sökindex. Du kan ladda upp dokument individuellt eller i batchar upp till 1 000 per batch, eller 16 MB per batch, beroende på vilken gräns som kommer först.
Viktiga fördelar är:
Inga begränsningar för datakällans typ. Nyttolasten måste bestå av JSON-dokument som mappar till indexschemat, men data kan hämtas var som helst.
Inga begränsningar för körningsfrekvensen. Du kan skicka ändringar till ett index så ofta du vill. För program med låga svarstider (till exempel när indexet måste vara synkroniserat med produktinventeringsfluktuationer) är push-modellen ditt enda alternativ.
Anslutningen och säker hämtning av dokument är helt under din kontroll. Indexerarens anslutningar autentiseras däremot med hjälp av säkerhetsfunktionerna i Azure AI Search.
Så här skickar du data till ett Azure AI Search-index
Använd följande API:er för att läsa in enskilda eller flera dokument i ett index:
- Indexdokument (REST API)
- IndexDocumentsAsync (Azure SDK för .NET) eller SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK för Python) eller SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK för Java) eller SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK för JavaScript eller SearchIndexingBufferedSender
Det finns inget stöd för att skicka data via Azure Portal.
En introduktion till push-API:erna finns i:
- Snabbstart: Fulltextsökning med hjälp av Azure SDK:er
- C#-självstudie: Optimera indexering med push-API:et
- REST-snabbstart: Skapa ett Azure AI Search-index med PowerShell
Indexeringsåtgärder: ladda upp, slå samman, mergeOrUpload, ta bort
Du kan styra typen av indexeringsåtgärd per dokument, ange om dokumentet ska laddas upp i sin helhet, sammanfogas med befintligt dokumentinnehåll eller tas bort.
Oavsett om du använder REST-API:et eller ett Azure SDK stöds följande dokumentåtgärder för dataimport:
Ladda upp, ungefär som en "upsert" där dokumentet infogas om det är nytt och uppdateras eller ersätts om det finns. Om dokumentet saknar värden som krävs för indexet är dokumentfältets värde inställt på null.
merge uppdaterar ett dokument som redan finns och misslyckas med ett dokument som inte kan hittas. Sammanslagning ersätter befintliga värden. Därför bör du söka efter samlingsfält som innehåller flera värden, till exempel fält av typen
Collection(Edm.String)
. Om etttags
fält till exempel börjar med värdet["budget"]
och du kör en sammanslagning med["economy", "pool"]
är["economy", "pool"]
det slutliga värdet för fältettags
. Det blir det inte["budget", "economy", "pool"]
.mergeOrUpload fungerar som sammanslagning om dokumentet finns och laddar upp om dokumentet är nytt.
ta bort tar bort hela dokumentet från indexet. Om du vill ta bort ett enskilt fält använder du sammanfoga i stället och anger fältet i fråga till null.
Hämta in data till ett index
Pull-modellen använder indexerare som ansluter till en datakälla som stöds och laddar automatiskt upp data till ditt index. Indexerare från Microsoft är tillgängliga för dessa plattformar:
- Azure Blob Storage
- Azure Table Storage
- Azure Data Lake Storage Gen2
- Azure Files (förhandsversion)
- Azure Cosmos DB
- Azure SQL Database, SQL Managed Instance och SQL Server på virtuella Azure-datorer
- OneLake-filer och genvägar
- SharePoint Online (förhandsversion)
Du kan använda anslutningsprogram från tredje part som utvecklats och underhålls av Microsoft-partner. Mer information och länkar finns i Galleriet för datakälla.
Indexerare ansluter ett index till en datakälla (vanligtvis en tabell, vy eller motsvarande struktur) och mappar källfält till motsvarande fält i indexet. Under körningen omvandlas raduppsättningen automatiskt till JSON och läses in i det angivna indexet. Alla indexerare stöder scheman så att du kan ange hur ofta data ska uppdateras. De flesta indexerare tillhandahåller ändringsspårning om datakällan har stöd för det. Indexerare spårar ändringar och borttagningar av befintliga dokument och identifierar nya dokument, vilket gör att du slipper hantera dina data i indexet aktivt.
Så här hämtar du data till ett Azure AI Search-index
Använd följande verktyg och API:er för indexeringsbaserad indexering:
- Guiden Importera data eller guiden Importera och vektorisera data
- REST-API:er: Skapa indexerare (REST), Skapa datakälla (REST), Skapa index (REST)
- Azure SDK för .NET: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Azure SDK för Python: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Azure SDK för Java: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Azure SDK för JavaScript: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
Indexerarfunktionen exponeras i [Azure Portal], REST API och .NET SDK.
En fördel med att använda portalen är att Azure AI Search vanligtvis kan generera ett standardindexschema genom att läsa metadata för källdatauppsättningen.
Verifiera dataimport med Sökutforskaren
Ett snabbt sätt att utföra en preliminär kontroll av dokumentuppladdningen är att använda Sökutforskaren i portalen.
Med utforskaren kan du köra frågor mot ett index utan att behöva skriva kod. Sökupplevelse baseras på standardinställningar, t.ex. enkel syntax och searchMode-frågeparametern. Resultaten returneras i JSON så att du kan gå igenom hela dokumentet.
Här är en exempelfråga som du kan köra i Sökutforskaren i JSON-vyn. "HotelId" är dokumentnyckeln för hotels-sample-index. Filtret innehåller dokument-ID för ett visst dokument:
{
"search": "*",
"filter": "HotelId eq '50'"
}
Om du använder REST uppnår den här sökningsfrågan samma syfte.