Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
Platí pro: Indexery blobů, Indexery souborů (ve verzi Preview)
V případě indexování objektů blob ve službě Azure AI Vyhledávač se v tomto článku dozvíte, jak nastavit vlastnosti objektů blob nebo souborů, které se skládají z dokumentů JSON. Soubory JSON ve službě Azure Blob Storage nebo Azure Files obvykle předpokládají některé z těchto formulářů:
- Jeden dokument JSON
- Dokument JSON obsahující pole dobře formátovaných elementů JSON
- Dokument JSON obsahující více entit oddělených novým řádekem
Indexer objektů blob poskytuje parsingMode parametr pro optimalizaci výstupu vyhledávacího dokumentu na základě struktury JSON. Režimy analýzy se skládají z následujících možností:
| režim parsování | Dokument JSON | Description |
|---|---|---|
json |
Jeden na datový objekt | (výchozí) Parsuje objekty blob JSON jako jeden blok textu. Každý objekt blob JSON se stane jedním vyhledávacím dokumentem. |
jsonArray |
Více objektů blob na objekt blob | Parsuje pole JSON v objektu blob, kde každý prvek pole se stane samostatným vyhledávacím dokumentem. |
jsonLines |
Více objektů blob na objekt blob | Parsuje objekt blob, který obsahuje více entit JSON (také pole), s jednotlivými prvky oddělenými novým řádekem. Indexer spustí nový vyhledávací dokument za každým novým řádkem. |
Pro obojí jsonArray a jsonLines, byste měli zkontrolovat Indexování jednoho objektu blob do více prohledávacích dokumentů, abyste pochopili, jak indexer objektů blob zpracovává nejednoznačnost klíče dokumentu pro více prohledávacích dokumentů vytvořených ze stejného objektu blob.
V definici indexeru můžete volitelně nastavit mapování polí a zvolit, které vlastnosti zdrojového dokumentu JSON se použijí k naplnění cílového indexu vyhledávání. Pokud například používáte jsonArray režim analýzy, pokud pole existuje jako vlastnost nižší úrovně, můžete nastavit vlastnost documentRoot označující, kde je pole umístěné v objektu blob.
Poznámka:
Při použití režimu analýzy JSON služba Azure AI Vyhledávač předpokládá, že všechny objekty blob používají stejný analyzátor (buď pro json, jsonArray nebo jsonLines). Pokud máte ve stejném zdroji dat kombinaci různých typů souborů, zvažte použití filtrů přípon souborů k řízení importovaných souborů.
Následující části popisují jednotlivé režimy podrobněji. Pokud nejste obeznámeni s klienty indexeru a jeho koncepty, viz Vytvoření vyhledávacího indexeru. Měli byste být také obeznámeni s podrobnostmi základní konfigurace indexeru objektů blob, která se zde neopakuje.
Indexování jednotlivých dokumentů JSON (jeden na každý objekt blob)
Ve výchozím nastavení indexery objektů blob parsují objekty blob JSON jako jeden blok textu, jeden prohledávací dokument pro každý objekt blob v kontejneru. Pokud je JSON strukturovaný, může vyhledávací dokument tuto strukturu odrážet s jednotlivými prvky reprezentovanými jako jednotlivá pole. Předpokládejme například, že máte v Azure Blob Storage následující dokument JSON:
{
"article" : {
"text" : "A hopefully useful article explaining how to parse JSON blobs",
"datePublished" : "2020-04-13",
"tags" : [ "search", "storage", "howto" ]
}
}
Indexer blobů parsuje dokument JSON do jednoho prohledávacího dokumentu tím, že načte index podle shody polí "text", "datePublished" a "tags" ze zdroje s identicky pojmenovanými a typově shodnými poli cílového indexu. Vzhledem k indexu s poli "text", "datePublished a tags" může indexer objektů blob odvodit správné mapování bez mapování polí, které je přítomné v požadavku.
I když je výchozím chováním jeden vyhledávací dokument na objekt blob JSON, nastavení režimu analýzy pomocí json změní mapování interních polí pro obsah, a povýšením polí v rámci content je převede na skutečná pole v indexu vyhledávání. Příklad definice indexeru json pro režim analýzy může vypadat takto:
POST https://[service name].search.windows.net/indexers?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-json-indexer",
"dataSourceName" : "my-blob-datasource",
"targetIndexName" : "my-target-index",
"parameters" : { "configuration" : { "parsingMode" : "json" } }
}
Poznámka:
Stejně jako u všech indexerů, pokud pole jasně neodpovídají, měli byste očekávat, že explicitně určíte individuální mapování polí, pokud nepoužíváte implicitní mapování polí dostupné pro obsah a metadata objektů blob, jak je popsáno v základní konfiguraci indexeru objektů blob. Pokud chcete přepsat existující hodnotu indexu, musí zdrojový kód JSON zadat hodnotu, která není null. Pokud má pole ve zdrojovém dokumentu hodnotu null, indexer zachová stávající hodnotu. Pokud chcete pole explicitně vymazat, předejte místo toho prázdný řetězec (""). Tím zabráníte neúmyslným odstraněním z indexu.
Příklad json (soubory JSON jednoho hotelu)
Sada dat dokumentu JSON hotelu na GitHubu je užitečná pro testování analýzy JSON, kde každý objekt blob představuje strukturovaný soubor JSON. Datové soubory můžete nahrát do služby Blob Storage a pomocí průvodce importem rychle vyhodnotit, jak se tento obsah analyzuje do jednotlivých vyhledávacích dokumentů.
Datová sada se skládá z pěti blobů, z nichž každý obsahuje hotelový dokument se sbírkou adres a sbírkou místností. Indexer objektů blob detekuje kolekce a zároveň odráží strukturu vstupních dokumentů ve schématu indexu.
Analýza polí JSON
Alternativně můžete použít možnost pole JSON. Tato možnost je užitečná, když objekty blob obsahují pole dobře formátovaných objektů JSON a chcete, aby se každý prvek stal samostatným vyhledávacím dokumentem. Pomocí jsonArrays následující JSON blob vytvoří tři samostatné dokumenty, z nichž každý obsahuje pole "id" a "text".
[
{ "id" : "1", "text" : "example 1" },
{ "id" : "2", "text" : "example 2" },
{ "id" : "3", "text" : "example 3" }
]
parameters Vlastnost indexeru obsahuje hodnoty režimu analýzy. V případě pole JSON by definice indexeru měla vypadat podobně jako v následujícím příkladu.
POST https://[service name].search.windows.net/indexers?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-json-indexer",
"dataSourceName" : "my-blob-datasource",
"targetIndexName" : "my-target-index",
"parameters" : { "configuration" : { "parsingMode" : "jsonArray" } }
}
JsonArrays – příklad
Sada dat New York Philharmonic JSON na GitHubu je užitečná pro testování parsování polí JSON. Datové soubory můžete nahrát do úložiště objektů blob a pomocí průvodce importem rychle vyhodnotit, jak se tento obsah analyzuje do jednotlivých vyhledávacích dokumentů.
Datová sada se skládá z osmi objektů blob, z nichž každý obsahuje pole entit JSON pro celkem 100 entit. Entity se liší podle toho, která pole jsou naplněna, ale konečným výsledkem je jeden vyhledávací dokument pro každou entitu ze všech polí ve všech objektech blob.
Analýza vnořených polí JSON
U polí JSON s vnořenými elementy můžete zadat documentRoot , že se má označit struktura s více úrovněmi. Například pokud vaše bloby vypadají takto:
{
"level1" : {
"level2" : [
{ "id" : "1", "text" : "Use the documentRoot property" },
{ "id" : "2", "text" : "to pluck the array you want to index" },
{ "id" : "3", "text" : "even if it's nested inside the document" }
]
}
}
Pomocí této konfigurace indexujte pole obsažené ve level2 vlastnosti:
{
"name" : "my-json-array-indexer",
... other indexer properties
"parameters" : { "configuration" : { "parsingMode" : "jsonArray", "documentRoot" : "/level1/level2" } }
}
Parsování entit JSON oddělených novými řádky
Pokud objekt blob obsahuje více entit JSON oddělených novým řádekem a chcete, aby se každý prvek stal samostatným vyhledávacím dokumentem, použijte jsonLines.
{ "id" : "1", "text" : "example 1" }
{ "id" : "2", "text" : "example 2" }
{ "id" : "3", "text" : "example 3" }
U řádků JSON by definice indexeru měla vypadat podobně jako v následujícím příkladu.
POST https://[service name].search.windows.net/indexers?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-json-indexer",
"dataSourceName" : "my-blob-datasource",
"targetIndexName" : "my-target-index",
"parameters" : { "configuration" : { "parsingMode" : "jsonLines" } }
}
Mapování polí JSON na vyhledávací pole
Mapování polí přidruží zdrojové pole k cílovému poli v situacích, kdy názvy a typy polí nejsou identické. Mapování polí lze také použít ke shodě částí dokumentu JSON a jejich převod do polí nejvyšší úrovně dokumentu vyhledávání.
Ilustruje to následující vzorový scénář. Další informace o mapování polí obecně naleznete v tématu mapování polí.
{
"article" : {
"text" : "A hopefully useful article explaining how to parse JSON blobs",
"datePublished" : "2016-04-13"
"tags" : [ "search", "storage", "howto" ]
}
}
Předpokládejme index vyhledávání s následujícími poli: text typu Edm.String, date typu Edm.DateTimeOffseta tags typu Collection(Edm.String). Všimněte si nesrovnalostí mezi datePublished ve zdroji a date poli v indexu. Pokud chcete namapovat JSON na požadovaný obrazec, použijte následující mapování polí:
"fieldMappings" : [
{ "sourceFieldName" : "/article/text", "targetFieldName" : "text" },
{ "sourceFieldName" : "/article/datePublished", "targetFieldName" : "date" },
{ "sourceFieldName" : "/article/tags", "targetFieldName" : "tags" }
]
Zdrojová pole se zadají pomocí zápisu ukazatele JSON. Začnete lomítkem, který odkazuje na kořen dokumentu JSON, a pak vyberete požadovanou vlastnost (na libovolné úrovni vnoření) pomocí cesty oddělené lomítkem.
Můžete také odkazovat na jednotlivé prvky pole pomocí indexu založeného na nule. Pokud chcete například vybrat první prvek pole "tags" z výše uvedeného příkladu, použijte mapování polí takto:
{ "sourceFieldName" : "/article/tags/0", "targetFieldName" : "firstTag" }
Poznámka:
Pokud "sourceFieldName" odkazuje na vlastnost, která v objektu blob JSON neexistuje, toto mapování se vynechá bez chyby. Toto chování umožňuje indexování pokračovat pro objekty blob JSON, které mají jiné schéma (což je běžný případ použití). Vzhledem k tomu, že neexistuje žádná kontrola ověření, zkontrolujte mapování pečlivě a zkontrolujte překlepy, abyste neztratili dokumenty z nesprávného důvodu.