Indexování objektů blob a souborů CSV pomocí režimu analýzy textu s oddělovači
Platí pro: Indexery úložiště objektů blob, indexery souborů
Ve službě Azure AI Search podporují delimitedText
indexery pro Azure Blob Storage a Azure Files režim analýzy souborů CSV, který zpracovává každý řádek ve sdíleném svazku clusteru jako samostatný vyhledávací dokument. Například vzhledem k následujícímu textu delimitedText
s oddělovači by režim analýzy výsledkem dvou dokumentů v indexu vyhledávání:
id, datePublished, tags
1, 2016-01-12, "azure-search,azure,cloud"
2, 2016-07-07, "cloud,mobile"
Pokud pole uvnitř souboru CSV obsahuje oddělovač, měl by být zabalen do uvozovek. Pokud pole obsahuje uvozovky, musí být uvozené pomocí dvojitých uvozovek (""
).
id, datePublished, tags
1, 2020-01-05, "tags,with,""quoted text"""
delimitedText
Bez režimu analýzy by celý obsah souboru CSV byl považován za jeden vyhledávací dokument.
Při každém vytváření více vyhledávacích dokumentů z jednoho objektu blob nezapomeňte zkontrolovat indexování objektů blob a vytvořit více vyhledávacích dokumentů, abyste pochopili, jak fungují přiřazení klíčů k dokumentu . Indexer objektů blob dokáže najít nebo generovat hodnoty, které jednoznačně definují každý nový dokument. Konkrétně může vytvořit tranzitivní AzureSearch_DocumentKey
, když se objekt blob analyzuje do menších částí, kde se hodnota pak použije jako klíč vyhledávacího dokumentu v indexu.
Nastavení indexování CSV
Pokud chcete indexovat objekty blob CSV, vytvořte nebo aktualizujte definici indexeru pomocí delimitedText
režimu analýzy v požadavku Create Indexer .
Podporuje se pouze kódování UTF-8.
{
"name" : "my-csv-indexer",
... other indexer properties
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "firstLineContainsHeaders" : true } }
}
firstLineContainsHeaders
označuje, že první řádek (neprázdný) každého objektu blob obsahuje záhlaví. Pokud objekty blob neobsahují počáteční řádek záhlaví, měly by se hlavičky zadat v konfiguraci indexeru:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
Znak oddělovače můžete přizpůsobit pomocí delimitedTextDelimiter
nastavení konfigurace. Příklad:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextDelimiter" : "|" } }
Poznámka:
V režimu analýzy textu s oddělovači azure AI Search předpokládá, že všechny objekty blob jsou CSV. Pokud máte ve stejném zdroji dat kombinaci objektů blob CSV a jiných objektů blob než CSV, zvažte použití filtrů přípon souborů k řízení importovaných souborů v jednotlivých spuštěních indexeru.
Příklady požadavků
Tady jsou kompletní příklady datových částí.
Zdroj dat:
POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-blob-datasource",
"type" : "azureblob",
"credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" },
"container" : { "name" : "my-container", "query" : "<optional, my-folder>" }
}
Zručný pracovník:
POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-csv-indexer",
"dataSourceName" : "my-blob-datasource",
"targetIndexName" : "my-target-index",
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
}