Documenten toevoegen, bijwerken of verwijderen (PREVIEW REST API)
Van toepassing op: 2023-07-01-Preview
Belangrijk
2023-07-01-Preview voegt het volgende 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 naar één index tegelijk posten. |
api-versie | Vereist. De huidige preview-versie is 2023-07-23-Preview . Zie API-versies voor meer versies. |
Aanvraagheaders
In de volgende tabel worden de vereiste en optionele aanvraagheaders beschreven.
Velden | Description |
---|---|
Content-Type | Vereist. Stel deze waarde in op application/json |
api-sleutel | Optioneel als u Azure-rollen gebruikt en er een bearer-token wordt opgegeven voor de aanvraag, anders is een sleutel vereist. Een API-sleutel is een unieke, door het systeem gegenereerde tekenreeks die de aanvraag verifieert bij uw zoekservice. Voor het uploaden van documenten is een beheer-API-sleutel vereist. Zie Verbinding maken met Azure AI Search met behulp van sleutelverificatie voor meer informatie. |
Aanvraagbody
De hoofdtekst van de aanvraag bevat een of meer documenten die moeten worden geïndexeerd. Documenten worden uniek geïdentificeerd met 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 getallen met één precisie met drijvende komma.
Vectorvelden kunnen duizenden insluitingen bevatten, afhankelijk van de complexiteit, lengte of het type van de oorspronkelijke inhoud. Azure AI Search converteert inhoud niet 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'. Standaard ingesteld op 'uploaden'. |
key_field_name | Vereist. Een velddefinitie in de index die fungeert als de documentsleutel en alleen unieke waarden bevat. Documentsleutels mogen alleen letters, cijfers, streepjes ("-" ), onderstrepingstekens ("_" ) en gelijktekens ("=" ) bevatten en zijn hoofdlettergevoelig. |
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 duurzaam zijn opgeslagen en dat het indexeren is begonnen. Indexering wordt uitgevoerd op de achtergrond en maakt nieuwe documenten beschikbaar (dus doorzoekbaar en doorzoekbaar) enkele seconden nadat de indexeringsbewerking is voltooid.
Een geslaagde indexering wordt aangegeven wanneer de statuseigenschap is ingesteld op true voor alle items. De eigenschap statusCode moet 201 (voor nieuw geüploade documenten) of 200 (voor samengevoegde of verwijderde documenten) zijn.
Voorbeelden
Voorbeeld: Twee documenten uploaden met tekst- en vectorinhoud
Voor de leesbaarheid toont 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 waarden met tijdzonegegevens uploadt DateTimeOffset
naar uw index, normaliseert Azure AI Search deze waarden naar UTC. 2019-01-13T14:03:00-08:00 wordt bijvoorbeeld opgeslagen als 2019-01-13T22:03:00Z. Als u informatie over de tijdzone wilt opslaan, voegt u een extra kolom toe aan uw index.