Sdílet prostřednictvím


Přidání, aktualizace nebo odstranění dokumentů (preview rozhraní REST API)

platí pro: 2023-07-01-Preview. Tato verze se už nepodporuje. okamžitě upgradovat na novější verzi.

Důležitý

2023-07-01-Preview přidává:

  • Podpora vektorových polí v dokumentu

Dokumenty, které obsahují vektorová pole, můžete odeslat do zadaného indexu pomocí http POST. U velkých aktualizací zlepšuje dávkování (až 1 000 dokumentů na dávku nebo přibližně 16 MB na dávku) výkon indexování.

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]  

Parametry identifikátoru URI

Parametr Popis
název služby Požadovaný. Nastavte tuto hodnotu na jedinečný uživatelsky definovaný název vyhledávací služby.
název indexu Požadovaný. Nastavte tuto hodnotu na název indexu, který dokumenty přijímá. Dokumenty můžete publikovat pouze do jednoho indexu najednou.
api-version Další verze najdete v verzích rozhraní API.

Hlavičky požadavku

Následující tabulka popisuje povinnou a volitelnou hlavičku požadavku.

Pole Popis
Typ obsahu Požadovaný. Nastavte tuto hodnotu na application/json
api-key Volitelné, pokud používáte role Azure a v požadavku je k dispozici nosný token, jinak se vyžaduje klíč. Api-key je jedinečný systémový vygenerovaný řetězec, který ověřuje požadavek ve vaší vyhledávací službě. Nahrání dokumentů vyžaduje klíč rozhraní API pro správu. Podrobnosti najdete v tématu Připojení k Azure AI Search pomocí ověřování klíčů.

Text požadavku

Text požadavku obsahuje jeden nebo více dokumentů, které se mají indexovat. Dokumenty jsou jednoznačně identifikovány pomocí klíče citlivého na malá a velká písmena. Každý dokument je přidružený k akci: "upload", "delete", "merge" nebo "mergeOrUpload". Žádosti o nahrání musí obsahovat data dokumentu jako sadu párů klíč/hodnota.

Vektorová pole jsou typu Collection(Edm.Single). Vektorová data se skládají z pole čísel s plovoucí desetinnou čárkou s jednoduchou přesností.

Vektorová pole můžou obsahovat tisíce vložených objektů v závislosti na složitosti, délce nebo typu původního obsahu. Azure AI Search nepřevádí obsah na vkládání. Dokumenty, které nasdílíte do indexu, musí obsahovat vložené objekty, které jste předtím vygenerovali.

{  
  "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 ]
        ...  
    },  
    ...  
  ]  
}  
Vlastnost Popis
@search.action Požadovaný. Platné hodnoty jsou "upload", "delete", "merge" nebo "mergeOrUpload". Výchozí hodnota je "upload".
key_field_name Požadovaný. Definice pole v indexu, která slouží jako klíč dokumentu a obsahuje pouze jedinečné hodnoty. Klíče dokumentu můžou obsahovat jenom písmena, číslice, pomlčky ("-"), podtržítka ("_") a rovnítka ("=") a rozlišují velká a malá písmena.
field_name Požadovaný. Dvojice name-value, kde název pole odpovídá názvu pole v definici indexu. Hodnota je definovaná uživatelem, ale musí být platná pro typ pole.

Odpověď

Stavový kód: 200 se vrátí pro úspěšnou odpověď, což znamená, že všechny položky byly uloženy trvale a indexování začalo. Indexování běží na pozadí a zpřístupní nové dokumenty (tj. dotazovatelné a prohledávatelné) několik sekund po dokončení operace indexování.

Úspěšné indexování je označeno, když je vlastnost stavu nastavena na true pro všechny položky. Vlastnost statusCode by měla být 201 (pro nově nahrané dokumenty) nebo 200 (pro sloučené nebo odstraněné dokumenty).

Příklady

Příklad : Nahrání dvou dokumentů s textovým a vektorovým obsahem

Pro čitelnost ukazuje následující příklad podmnožinu dokumentů a vkládání. Text požadavku Nahrát dokumenty se skládá z 108 dokumentů, z nichž každý má úplnou sadu vkládání pro "titleVector" a "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"
        }
        . . .
    ]
}

Poznámka

Když nahrajete DateTimeOffset hodnoty s informacemi o časovém pásmu do indexu, Azure AI Search tyto hodnoty normalizuje do standardu UTC. Například 2019-01-13T14:03:00-08:00 bude uložen jako 2019-01-13T22:03:00Z. Pokud potřebujete uložit informace o časovém pásmu, přidejte do indexu další sloupec.

Viz také