Overzicht van gegevensimport - Azure Cognitive Search
In Azure Cognitive Search query's uitgevoerd op uw inhoud die is geladen in en is opgeslagen in een zoekindex. In dit artikel worden de twee basismethoden voor het vullen van een index onderzocht: push uw gegevens programmatisch naar de index of wijs een Azure Cognitive Search-indexer naar een ondersteunde gegevensbron om de gegevens op te halen.
Bij beide benaderingen is het doel om gegevens uit een externe gegevensbron in een Azure Cognitive Search laden. Azure Cognitive Search kunt u een lege index maken, maar totdat u er gegevens in pusht of opvraagt, kan er geen query op worden uitgevoerd.
Notitie
Als AI-verrijking een oplossingsvereiste is, moet u het pull-model (indexers) gebruiken om een index te laden. Externe verwerking wordt alleen ondersteund via vaardighedensets die zijn gekoppeld aan een indexer.
Gegevens naar een index pushen
Het pushmodel, dat wordt gebruikt om uw gegevens programmatisch naar uw Azure Cognitive Search verzenden, is de meest flexibele aanpak. Ten eerste heeft dit model geen beperkingen met betrekking tot het gegevensbrontype. Elke gegevensset die bestaat uit JSON-documenten kan naar een Azure Cognitive Search-index worden pushen, ervan uitgaande dat elk document in de gegevensset velden heeft die zijn toegewezen aan velden die zijn gedefinieerd in uw indexschema. Ten tweede heeft dit model geen beperkingen met betrekking tot de frequentie van de uitvoering. U kunt wijzigingen naar een index pushen zo vaak als u wilt. Voor toepassingen die een zeer lage latentie vereisen (bijvoorbeeld als zoekopdrachten gesynchroniseerd moeten zijn met dynamische inventarisatiedatabases) is het pushmodel de enige mogelijkheid.
Deze aanpak is flexibeler dan het pull-model, omdat u documenten afzonderlijk of in batches kunt uploaden (maximaal 1000 per batch of 16 MB, afhankelijk van waar de limiet ligt). Met het pushmodel kunt u ook documenten uploaden naar Azure Cognitive Search waar uw gegevens zich ook in opslaan.
Gegevens pushen naar een Azure Cognitive Search index
U kunt de volgende API's gebruiken om één of meerdere documenten in een index te laden:
- Documenten toevoegen, bijwerken of verwijderen (REST API)
- IndexDocumentsAction class of IndexDocumentsBatch class
Er is momenteel geen ondersteuning voor het pushen van gegevens via de portal.
Zie Quickstart: Een Azure Cognitive Search-index maken met Behulp van PowerShell of C# Quickstart: Een Azure Cognitive Search-indexmaken met behulp van .NET SDK voor een inleiding tot elke methodologie.
Indexeringsacties: uploaden, samenvoegen, mergeOrUpload, verwijderen
U kunt het type indexeringsactie per document bepalen door op te geven of het document volledig moet worden geüpload, moet worden samengevoegd met bestaande documentinhoud of moet worden verwijderd.
In de REST API HTTP POST-aanvragen met JSON-aanvraaginstanties naar de eindpunt-URL van uw Azure Cognitive Search-index. Elk JSON-object in de waardematrix bevat de sleutel van het document en geeft aan of met een indexeringsactie documentinhoud wordt toegevoegd, bijgewerkt of verwijderd. Zie Documenten laden voor een codevoorbeeld.
In de .NET SDK verpakt u uw gegevens in een IndexBatch -object. Een bevat een verzameling objecten, die elk een document en een eigenschap bevatten die Azure Cognitive Search welke actie moet worden Azure Cognitive Search IndexBatch IndexAction dat document moet uitvoeren. Zie de C#-quickstart voor een codevoorbeeld.
| @search.action | Beschrijving | Vereiste velden voor elk document | Notities |
|---|---|---|---|
upload |
Een upload-actie is vergelijkbaar met een "upsert", waarbij het document wordt ingevoegd als het nieuw is en wordt bijgewerkt/vervangen als het al bestaat. |
sleutel, plus andere velden die u wilt definiëren | Tijdens het bijwerken/vervangen van een bestaand document wordt elk veld dat niet is opgegeven in de aanvraag ingesteld op null. Dit gebeurt zelfs als het veld eerder is ingesteld op een niet-null-waarde. |
merge |
Een bestaand document wordt bijgewerkt met de opgegeven velden. Als het document niet in de index bestaat, mislukt de samenvoeging. | sleutel, plus andere velden die u wilt definiëren | Alle velden die u in een samenvoeging opgeeft, vervangen de bestaande velden in het document, In de .NET SDK bevat dit velden van het type DataType.Collection(DataType.String) . In de REST API bevat dit velden van het type Collection(Edm.String) . Als het document bijvoorbeeld een veld tags bevat met de waarde ["budget"] en u een samenvoeging doet met de waarde ["economy", "pool"] voor tags, wordt de uiteindelijke waarde van het veld tags``["economy", "pool"]. Het wordt dus niet ["budget", "economy", "pool"]. |
mergeOrUpload |
Deze bewerking gedraagt zich als merge wanneer een document met de opgegeven sleutel al in de index bestaat. Als het document niet bestaat, gedraagt deze bewerking zich als upload met een nieuw document. |
sleutel, plus andere velden die u wilt definiëren | - |
delete |
Het opgegeven document wordt uit de index verwijderd. | alleen sleutel | Alle andere velden worden genegeerd. Als u een afzonderlijk veld uit een document wilt verwijderen, gebruikt u merge en stelt u het veld expliciet in op null. |
Uw query formuleren
Er zijn twee manieren om in de index te zoeken met behulp van de REST-API. De ene manier is om een HTTP POST-aanvraag uit te geven waarbij uw queryparameters worden gedefinieerd in een JSON-object in de aanvraagtekst. De andere manier is om een HTTP GET-aanvraag uit te geven waarbij uw queryparameters worden gedefinieerd in de aanvraag-URL. POST heeft soepelere limieten met betrekking tot de grootte van queryparameters dan GET. Daarom wordt u aangeraden POST te gebruiken, tenzij er speciale omstandigheden zijn waarin het gebruik van GET beter zou zijn.
Voor zowel POST als GET moet u uw servicenaam, indexnaam en een API-versie in de aanvraag-URL opgeven.
Voor GET geeft u in de querytekenreeks aan het einde van de URL de queryparameters op. Hieronder vindt u de URL-indeling:
https://[service name].search.windows.net/indexes/[index name]/docs?[query string]&api-version=2019-05-06
De indeling voor POST is hetzelfde, maar met api-version in de queryreeksparameters.
Gegevens in een index ophalen
Het pullmodel verkent een ondersteunde gegevensbron en uploadt de gegevens automatisch naar uw index. In Azure Cognitive Search is deze mogelijkheid geïmplementeerd via indexeringen, die momenteel beschikbaar zijn voor deze platformen:
- Blob Storage
- Table Storage
- Azure Cosmos DB
- Azure SQL Database, SQL Managed Instance en SQL Server azure-VM's
- SharePoint Online (preview)
- Azure Data Lake Storage Gen2
Indexeerfuncties verbinden een index met een gegevensbron (meestal een tabel, weergave of equivalente structuur) en wijzen bronvelden toe aan equivalente velden in de index. Tijdens de uitvoering wordt de rijenset automatisch omgezet naar JSON en in de opgegeven index geladen. Alle indexeerfuncties ondersteunen planning. U kunt dus opgeven hoe vaak de gegevens moeten worden vernieuwd. Met de meeste indexeerfuncties kunt u wijzigingen bijhouden als dit door de gegevensbron wordt ondersteund. Als u naast het herkennen van nieuwe documenten, wijzigingen en verwijderingen in een bestaand document bijhoudt, hoeft u de gegevens in een index via indexeerfuncties niet actief bij te houden.
Gegevens in een Azure Cognitive Search halen
Functionaliteit van de indexeerfunctie wordt weergegeven in Azure Portal, de REST API en de .NET SDK.
Een voordeel van het gebruik van de portal is dat Azure Cognitive Search meestal een standaardindexschema voor u kan genereren door de metagegevens van de brongegevensset te lezen. U kunt de gegenereerde index wijzigen totdat de index wordt verwerkt. Daarna zijn alleen schemabewerkingen toegestaan waarvoor de index niet opnieuw gegenereerd hoeft te worden. Als de wijzigingen die u doorvoert, rechtstreeks invloed hebben op het schema, moet u de index opnieuw opbouwen.
Gegevensimport controleren met Search Explorer
Een snelle manier om een voorlopige controle uit te voeren op het uploaden van documenten, is door Search Explorer in de portal te gebruiken. Met de explorer kunt u gegevens uit een index opvragen zonder code te schrijven. De zoekervaring is gebaseerd op standaardinstellingen, zoals de eenvoudige syntaxis en de standaardqueryparameter searchMode. Resultaten worden geretourneerd in JSON, zodat u het hele document kunt inspecteren.
Tip
Talloze Azure Cognitive Search codevoorbeelden zijn ingesloten of direct beschikbare gegevenssets, waarmee u eenvoudig aan de slag kunt gaan. De portal bevat ook een voorbeeldindexeerfunctie en een gegevensbron, bestaande uit een kleine vastgoedgegevensset ('realestate-us-sample'). Wanneer u de vooraf geconfigureerde indexer op de voorbeeldgegevensbron hebt uitgevoerd, wordt er een index gemaakt en geladen met documenten die vervolgens kunnen worden opgevraagd in Search Explorer of met code die u schrijft.