Lägga till, uppdatera eller ta bort dokument (förhandsversion av REST API)
Gäller för: 2023-07-01-Preview
Viktigt
2023-07-01-Preview lägger till:
- Stöd för vektorfält i ett dokument.
Du kan skicka dokument som innehåller vektorfält till ett angivet index med hjälp av HTTP POST. Vid en stor uppdatering förbättrar batchbearbetning (upp till 1 000 dokument per batch eller cirka 16 MB per batch) indexeringsprestanda.
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-parametrar
Parameter | Beskrivning |
---|---|
tjänstnamn | Krävs. Ange det här värdet till det unika, användardefinierade namnet på söktjänsten. |
indexnamn | Krävs. Ange det här värdet till namnet på det index som tar emot dokumenten. Du kan bara publicera dokument till ett index i taget. |
api-version | Krävs. Den aktuella förhandsversionen är 2023-07-23-Preview . Fler versioner finns i API-versioner . |
Rubriker för begäran
I följande tabell beskrivs de obligatoriska och valfria begärandehuvudena.
Fält | Description |
---|---|
Content-Type | Krävs. Ange det här värdet till application/json |
api-key | Valfritt om du använder Azure-roller och en ägartoken anges i begäran, annars krävs en nyckel. En API-nyckel är en unik, systemgenererad sträng som autentiserar begäran till söktjänsten. För att ladda upp dokument krävs en API-administratörsnyckel. Mer information finns i Ansluta till Azure AI Search med nyckelautentisering . |
Begärandetext
Brödtexten i begäran innehåller ett eller flera dokument som ska indexeras. Dokument identifieras unikt via en skiftlägeskänslig nyckel. Varje dokument är associerat med en åtgärd: "upload", "delete", "merge" eller "mergeOrUpload". Uppladdningsbegäranden måste innehålla dokumentdata som en uppsättning nyckel/värde-par.
Vektorfält är av typen Collection(Edm.Single)
. Vektordata består av en matris med flyttal med enkel precision.
Vektorfält kan innehålla tusentals inbäddningar, beroende på det ursprungliga innehållets komplexitet, längd eller typ. Azure AI Search konverterar inte innehåll till inbäddningar. Dokumenten som du skickar till ett index måste innehålla inbäddningar som du har genererat tidigare.
{
"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 ]
...
},
...
]
}
Egenskap | Beskrivning |
---|---|
@search.action | Krävs. Giltiga värden är "upload", "delete", "merge" eller "mergeOrUpload". Standardvärdet är "upload". |
key_field_name | Krävs. En fältdefinition i indexet som fungerar som dokumentnyckel och som endast innehåller unika värden. Dokumentnycklar får bara innehålla bokstäver, siffror, bindestreck ("-" ), understreck ("_" ) och likhetstecken ("=" ) och är skiftlägeskänsliga. |
field_name | Krävs. Namn/värde-par, där namnet på fältet motsvarar ett fältnamn i indexdefinitionen. Värdet är användardefinierat men måste vara giltigt för fälttypen. |
Svarsåtgärder
Statuskod: 200 returneras för ett lyckat svar, vilket innebär att alla objekt har lagrats varaktigt och att indexeringen har börjat. Indexeringen körs i bakgrunden och gör nya dokument tillgängliga (dvs. frågebara och sökbara) några sekunder efter att indexeringsåtgärden har slutförts.
Lyckad indexering anges när statusegenskapen har angetts till true för alla objekt. Egenskapen statusCode ska vara antingen 201 (för nyligen uppladdade dokument) eller 200 (för sammanfogade eller borttagna dokument).
Exempel
Exempel: Ladda upp två dokument med text- och vektorinnehåll
För läsbarhet visar följande exempel en delmängd av dokument och inbäddningar. Brödtexten i begäran ladda upp dokument består av 108 dokument, var och en med en fullständig uppsättning inbäddningar för "titleVector" och "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"
}
. . .
]
}
Anteckning
När du laddar upp DateTimeOffset
värden med tidszonsinformation till ditt index normaliserar Azure AI Search dessa värden till UTC. Till exempel lagras 2019-01-13T14:03:00-08:00 som 2019-01-13T22:03:00Z. Om du behöver lagra tidszonsinformation lägger du till en extra kolumn i indexet.