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.