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.

Se även