Documenten toevoegen, bijwerken of verwijderen (preview-REST API)
is van toepassing op: 2023-07-01-Preview. Deze versie wordt niet meer ondersteund. upgrade onmiddellijk naar een nieuwere versie.
Belangrijk
2023-07-01-Preview voegt toe:
- Ondersteuning voor vectorvelden in een document.
U kunt documenten die vectorvelden bevatten naar een opgegeven index pushen met behulp van HTTP POST. Voor een grote update verbetert batchverwerking (maximaal 1000 documenten per batch of ongeveer 16 MB per batch) de indexeringsprestaties.
POST https://[service name].search.windows.net/indexes/[index name]/docs/index?api-version=2023-07-01-Preview
Content-Type: application/json
api-key: [admin key]
URI-parameters
Parameter | Beschrijving |
---|---|
servicenaam | Vereist. Stel deze waarde in op de unieke, door de gebruiker gedefinieerde naam van uw zoekservice. |
indexnaam | Vereist. Stel deze waarde in op de naam van de index die de documenten ontvangt. U kunt documenten slechts in één index tegelijk plaatsen. |
api-version | Zie API-versies voor meer versies. |
Aanvraagheaders
In de volgende tabel worden de vereiste en optionele aanvraagheaders beschreven.
Velden | Beschrijving |
---|---|
Inhoudstype | Vereist. Stel deze waarde in op application/json |
api-key | Optioneel als u Azure-rollen gebruikt en er een bearer-token wordt opgegeven in de aanvraag, anders is een sleutel vereist. Een API-sleutel is een unieke, door het systeem gegenereerde tekenreeks waarmee de aanvraag wordt geverifieerd bij uw zoekservice. Voor het uploaden van documenten is een beheerders-API-sleutel vereist. Zie Verbinding maken met Azure AI Search met behulp van sleutelverificatie voor meer informatie. |
Hoofdtekst van aanvraag
De hoofdtekst van de aanvraag bevat een of meer documenten die moeten worden geïndexeerd. Documenten worden uniek geïdentificeerd via een hoofdlettergevoelige sleutel. Elk document is gekoppeld aan een actie: 'uploaden', 'verwijderen', 'samenvoegen' of 'mergeOrUpload'. Uploadaanvragen moeten de documentgegevens bevatten als een set sleutel-waardeparen.
Vectorvelden zijn van het type Collection(Edm.Single)
. Vectorgegevens bestaan uit een matrix met drijvendekommanummers met één precisie.
Vectorvelden kunnen duizenden insluitingen bevatten, afhankelijk van de complexiteit, lengte of het type van de oorspronkelijke inhoud. Azure AI Search converteert geen inhoud naar insluitingen. De documenten die u naar een index pusht, moeten insluitingen bevatten die u eerder hebt gegenereerd.
{
"value": [
{
"@search.action": "upload (default) | merge | mergeOrUpload | delete",
"key_field_name": "unique_key_of_document", (key/value pair for key field from index schema)
"field_name": field_value (key/value pairs matching index schema),
"vector_field_name": [ array of single-precision floating point numbers ]
...
},
...
]
}
Eigenschap | Beschrijving |
---|---|
@search.action | Vereist. Geldige waarden zijn 'uploaden', 'verwijderen', 'samenvoegen' of 'mergeOrUpload'. De standaardinstelling is 'uploaden'. |
key_field_name | Vereist. Een velddefinitie in de index die als documentsleutel fungeert en alleen unieke waarden bevat. Documentsleutels kunnen alleen letters, cijfers, streepjes ("-" ), onderstrepingstekens ("_" ) en gelijktekens ("=" ) bevatten en hoofdlettergevoelig zijn. |
field_name | Vereist. Naam-waardeparen, waarbij de naam van het veld overeenkomt met een veldnaam in de indexdefinitie. De waarde is door de gebruiker gedefinieerd, maar moet geldig zijn voor het veldtype. |
Antwoord
Statuscode: 200 wordt geretourneerd voor een geslaagd antwoord, wat betekent dat alle items blijvend zijn opgeslagen en dat indexering is gestart. Indexering wordt op de achtergrond uitgevoerd en maakt nieuwe documenten (dat wil gezegd, doorzoekbaar en doorzoekbaar) enkele seconden nadat de indexeringsbewerking is voltooid.
Geslaagde indexering wordt aangegeven wanneer de statuseigenschap is ingesteld op true voor alle items. De eigenschap statusCode moet 201 zijn (voor nieuw geüploade documenten) of 200 (voor samengevoegde of verwijderde documenten).
Voorbeelden
voorbeeld: twee documenten uploaden met tekst- en vectorinhoud
Voor de leesbaarheid ziet u in het volgende voorbeeld een subset van documenten en insluitingen. De hoofdtekst van de aanvraag Documenten uploaden bestaat uit 108 documenten, elk met een volledige set insluitingen voor 'titleVector' en 'contentVector'.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/index?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
"value": [
{
"id": "1",
"title": "Azure App Service",
"content": "Azure App Service is a fully managed platform for building, deploying, and scaling web apps. You can host web apps, mobile app backends, and RESTful APIs. It supports a variety of programming languages and frameworks, such as .NET, Java, Node.js, Python, and PHP. The service offers built-in auto-scaling and load balancing capabilities. It also provides integration with other Azure services, such as Azure DevOps, GitHub, and Bitbucket.",
"category": "Web",
"titleVector": [
-0.02250031754374504,
. . .
],
"contentVector": [
-0.024740582332015038,
. . .
],
"@search.action": "upload"
},
{
"id": "2",
"title": "Azure Functions",
"content": "Azure Functions is a serverless compute service that enables you to run code on-demand without having to manage infrastructure. It allows you to build and deploy event-driven applications that automatically scale with your workload. Functions support various languages, including C#, F#, Node.js, Python, and Java. It offers a variety of triggers and bindings to integrate with other Azure services and external services. You only pay for the compute time you consume.",
"category": "Compute",
"titleVector": [
-0.020159931853413582,
. . .
],
"contentVector": [
-0.02780858241021633,,
. . .
],
"@search.action": "upload"
}
. . .
]
}
Notitie
Wanneer u DateTimeOffset
waarden uploadt met tijdzonegegevens naar uw index, normaliseert Azure AI Search deze waarden naar UTC. Bijvoorbeeld: 2019-01-13T14:03:00-08:00 wordt opgeslagen als 2019-01-13T22:03:00Z. Als u tijdzonegegevens wilt opslaan, voegt u een extra kolom toe aan uw index.