Gegevens laden in een zoekindex in Azure AI Search
In dit artikel wordt uitgelegd hoe u documenten importeert in een vooraf gedefinieerde zoekindex. In Azure AI Search wordt eerst een zoekindex gemaakt met gegevensimport als tweede stap. De uitzondering hierop zijn wizards importeren in de portal- en indexeerpijplijnen, waarmee een index in één werkstroom wordt gemaakt en geladen.
Hoe gegevens importeren werkt
Een zoekservice accepteert JSON-documenten die voldoen aan het indexschema. Een zoekservice importeert en indexeert tekst zonder opmaak en vectoren in JSON, die wordt gebruikt in zoekopdrachten in volledige tekst, vectorzoekopdrachten, hybride zoekopdrachten en kennisanalysescenario's.
Inhoud zonder opmaak kan worden opgehaald uit alfanumerieke velden in de externe gegevensbron, metagegevens die nuttig zijn in zoekscenario's of verrijkte inhoud die is gemaakt door een vaardighedenset (vaardigheden kunnen tekstuele beschrijvingen extraheren of afleiden uit afbeeldingen en ongestructureerde inhoud).
Vectorinhoud wordt gevectoriseerd met behulp van een extern insluitmodel of geïntegreerde vectorisatie met behulp van Azure AI Search-functies die zijn geïntegreerd met toegepaste AI.
U kunt deze documenten zelf voorbereiden, maar als inhoud zich in een ondersteunde gegevensbron bevindt, kunt u een indexeerfunctie uitvoeren of met behulp van een wizard Importeren het ophalen van documenten, JSON-serialisatie en indexering automatiseren.
Zodra gegevens zijn geïndexeerd, worden de fysieke gegevensstructuren van de index vergrendeld. Zie Een index bijwerken en herbouwen voor hulp bij wat wel en niet kan worden gewijzigd.
Indexering is geen achtergrondproces. Een zoekservice zorgt voor een balans tussen indexering en queryworkloads, maar als de querylatentie te hoog is, kunt u capaciteit toevoegen of perioden met een lage queryactiviteit identificeren voor het laden van een index.
Zie Strategieën voor gegevensimport voor meer informatie.
De Azure-portal gebruiken
Gebruik de wizards importeren in Azure Portal om indexen in een naadloze werkstroom te maken en te laden. Als u een bestaande index wilt laden, kiest u een alternatieve benadering.
Meld u aan bij Azure Portal met uw Azure-account en zoek uw zoekservice.
Selecteer op de pagina Overzicht gegevens importeren of Gegevens importeren en vectoriseren op de opdrachtbalk om een zoekindex te maken en te vullen.
U kunt deze koppelingen volgen om de werkstroom te bekijken: Quickstart: Een Azure AI Search-index en quickstart: Geïntegreerde vectorisatie maken.
Nadat de wizard is voltooid, gebruikt u Search Explorer om te controleren op resultaten.
Tip
Met de wizards importeren worden indexeerfuncties gemaakt en uitgevoerd. Als indexeerfuncties al zijn gedefinieerd, kunt u een indexeerfunctie opnieuw instellen en uitvoeren vanuit Azure Portal. Dit is handig als u velden incrementeel toevoegt. Opnieuw instellen zorgt ervoor dat de indexeerfunctie opnieuw wordt gestart, zodat alle velden uit alle brondocumenten worden opgehaald.
De REST API’s gebruiken
Documenten - Index is de REST API voor het importeren van gegevens in een zoekindex. REST API's zijn handig voor het testen van het proof-of-concept, waar u indexeringswerkstromen kunt testen zonder veel code te hoeven schrijven. De @search.action
parameter bepaalt of documenten volledig of gedeeltelijk worden toegevoegd in termen van nieuwe of vervangende waarden voor specifieke velden.
Quickstart: Tekst zoeken met REST legt de stappen uit. Het volgende voorbeeld is een gewijzigde versie van het voorbeeld. De waarde is ingekort en de eerste HotelId-waarde is gewijzigd om te voorkomen dat een bestaand document wordt overschreven.
Formuleer een POST-aanroep die de indexnaam, het eindpunt docs/index en een aanvraagbody bevat die de
@search.action
parameter bevat.POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2024-07-01 Content-Type: application/json api-key: [admin key] { "value": [ { "@search.action": "upload", "HotelId": "1111", "HotelName": "Stay-Kay City Hotel", "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.", "Category": "Boutique", "Tags": [ "pool", "air conditioning", "concierge" ] }, { "@search.action": "mergeOrUpload", "HotelId": "2", "HotelName": "Old Century Hotel", "Description": "This is description is replacing the original one for this hotel. New and changed values overwrite the previous ones. In a comma-delimited list like Tags, be sure to provide the full list because there is no merging of values within the field itself.", "Category": "Boutique", "Tags": [ "pool", "free wifi", "concierge", "my first new tag", "my second new tag" ] } ] }
Stel de
@search.action
parameter in om een document teupload
maken of te overschrijven. Stel deze optiemerge
in op ofuploadOrMerge
als u gericht bent op updates voor specifieke velden in het document. In het vorige voorbeeld ziet u beide acties.Actie Effect samenvoegen Werkt een document bij dat al bestaat en mislukt een document dat niet kan worden gevonden. Samenvoegen vervangt bestaande waarden. Zorg er daarom voor dat u controleert op verzamelingsvelden die meerdere waarden bevatten, zoals velden van het type Collection(Edm.String)
. Als eentags
veld bijvoorbeeld begint met een waarde van["budget"]
en u een samenvoegbewerking["economy", "pool"]
uitvoert, is["economy", "pool"]
de uiteindelijke waarde van hettags
veld. Het zal niet zijn["budget", "economy", "pool"]
.mergeOrUpload Gedraagt zich als samenvoegen als het document bestaat en uploadt of het document nieuw is. Dit is de meest voorkomende actie voor incrementele updates. uploaden Vergelijkbaar met een upsert waarin het document wordt ingevoegd als het nieuw is en bijgewerkt of vervangen als het bestaat. Als het document ontbrekende waarden bevat die de index vereist, wordt de waarde van het documentveld ingesteld op null. Verzend de aanvraag.
Zoek de documenten op die u zojuist hebt toegevoegd als validatiestap:
GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2024-07-01
Wanneer de documentsleutel of -id nieuw is, wordt null de waarde voor een veld dat niet is opgegeven in het document. Voor acties in een bestaand document vervangen bijgewerkte waarden de vorige waarden. Velden die niet zijn opgegeven in een 'samenvoeging' of 'mergeUpload' blijven intact in de zoekindex.
De Azure SDK's gebruiken
Programmeerbaarheid wordt geleverd in de volgende Azure SDK's.
De Azure SDK voor .NET biedt de volgende API's voor eenvoudige en bulksgewijs uploaden van documenten naar een index:
Er zijn verschillende voorbeelden die indexering illustreren in de context van eenvoudige en grootschalige indexering:
'Een index laden' legt de basisstappen uit.
Voorbeelden van Azure.Search.Documents - Documenten indexeren van het Azure SDK-team voegt SearchIndexingBufferedSender toe.
Zelfstudie: Indexeer batchindexering van gegevensparen met teststrategieën voor het bepalen van een optimale grootte.
Controleer de opslagplaats azure-search-vector-samples voor codevoorbeelden die laten zien hoe u vectorvelden indexeren.