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.

Zie ook