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.

Se även