Delen via


Documenten toevoegen, bijwerken of verwijderen (preview-REST API)

is van toepassing op: 2023-07-01-Preview. Deze versie wordt niet meer ondersteund. upgrade onmiddellijk naar een nieuwere versie.

Belangrijk

2023-07-01-Preview voegt 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 in één index tegelijk plaatsen.
api-version Zie API-versies voor meer versies.

Aanvraagheaders

In de volgende tabel worden de vereiste en optionele aanvraagheaders beschreven.

Velden Beschrijving
Inhoudstype Vereist. Stel deze waarde in op application/json
api-key Optioneel als u Azure-rollen gebruikt en er een bearer-token wordt opgegeven in de aanvraag, anders is een sleutel vereist. Een API-sleutel is een unieke, door het systeem gegenereerde tekenreeks waarmee de aanvraag wordt geverifieerd bij uw zoekservice. Voor het uploaden van documenten is een beheerders-API-sleutel vereist. Zie Verbinding maken met Azure AI Search met behulp van sleutelverificatie voor meer informatie.

Hoofdtekst van aanvraag

De hoofdtekst van de aanvraag bevat een of meer documenten die moeten worden geïndexeerd. Documenten worden uniek geïdentificeerd via 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 drijvendekommanummers met één precisie.

Vectorvelden kunnen duizenden insluitingen bevatten, afhankelijk van de complexiteit, lengte of het type van de oorspronkelijke inhoud. Azure AI Search converteert geen inhoud 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'. De standaardinstelling is 'uploaden'.
key_field_name Vereist. Een velddefinitie in de index die als documentsleutel fungeert en alleen unieke waarden bevat. Documentsleutels kunnen alleen letters, cijfers, streepjes ("-"), onderstrepingstekens ("_") en gelijktekens ("=") bevatten en hoofdlettergevoelig zijn.
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 blijvend zijn opgeslagen en dat indexering is gestart. Indexering wordt op de achtergrond uitgevoerd en maakt nieuwe documenten (dat wil gezegd, doorzoekbaar en doorzoekbaar) enkele seconden nadat de indexeringsbewerking is voltooid.

Geslaagde indexering wordt aangegeven wanneer de statuseigenschap is ingesteld op true voor alle items. De eigenschap statusCode moet 201 zijn (voor nieuw geüploade documenten) of 200 (voor samengevoegde of verwijderde documenten).

Voorbeelden

voorbeeld: twee documenten uploaden met tekst- en vectorinhoud

Voor de leesbaarheid ziet u in 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 DateTimeOffset waarden uploadt met tijdzonegegevens naar uw index, normaliseert Azure AI Search deze waarden naar UTC. Bijvoorbeeld: 2019-01-13T14:03:00-08:00 wordt opgeslagen als 2019-01-13T22:03:00Z. Als u tijdzonegegevens wilt opslaan, voegt u een extra kolom toe aan uw index.

Zie ook