Lägga till, uppdatera eller ta bort dokument (förhandsversion av REST API)
gäller för: 2023-07-01-Preview. Den här versionen stöds inte längre. Uppgradera omedelbart till en nyare version.
Viktig
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. För 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 | Se API-versioner för fler versioner. |
Begärandehuvuden
I följande tabell beskrivs de obligatoriska och valfria begäranderubrikerna.
Fält | Beskrivning |
---|---|
Innehållstyp | 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 din söktjänst. För att ladda upp dokument krävs en administratörs-API-nyckel. Mer information finns i Anslut till Azure AI Search med hjälp av 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å komplexitet, längd eller typ av originalinnehåll. 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 tidigare har genererat.
{
"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 endast innehåller unika värden. Dokumentnycklar kan 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. |
Svar
Statuskod: 200 returneras för ett lyckat svar, vilket innebär att alla objekt har lagrats durably och att indexeringen har påbörjats. Indexering 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 om uppladdningsdokument 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"
}
. . .
]
}
Not
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 information om tidszonen lägger du till en extra kolumn i ditt index.