Indexování objektů blob a souborů CSV pomocí režimu analýzy textu s oddělovači

Platí pro: Indexery 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 delimetr, 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.

Pokaždé, když vytváříte více vyhledávacích dokumentů z jednoho objektu blob, nezapomeňte zkontrolovat indexování objektů blob a vytvořit více hledaný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 přechodný objekt AzureSearch_DocumentKey , který se vygeneruje při analýze objektu blob 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í.

Datasource:

POST https://[service name].search.windows.net/datasources?api-version=2023-11-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>" }
}   

Indexer:

POST https://[service name].search.windows.net/indexers?api-version=2023-11-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" } }
}

Viz také