CSV-blobok és fájlok indexelése elválasztószöveg-elemzési móddal

A következőkre vonatkozik: Blobindexerek, Fájlindexelők

Az Azure AI Searchben az Azure Blob Storage és az Azure Files indexelői olyan CSV-fájlok elemzési módját támogatják delimitedText , amelyek a CSV minden sorát külön keresési dokumentumként kezelik. A következő vesszővel tagolt szöveg alapján például az delimitedText elemzési mód két dokumentumot eredményezne a keresési indexben:

id, datePublished, tags
1, 2016-01-12, "azure-search,azure,cloud"
2, 2016-07-07, "cloud,mobile"

Ha a CSV-fájlban egy mező tartalmazza a delimetert, azt idézőjelekbe kell burkolni. Ha a mező idézőjelet tartalmaz, akkor dupla idézőjelek ("") használatával kell kikerülni.

id, datePublished, tags
1, 2020-01-05, "tags,with,""quoted text"""

Az elemzési delimitedText mód nélkül a CSV-fájl teljes tartalma egyetlen keresési dokumentumként lesz kezelve.

Amikor több keresési dokumentumot hoz létre egyetlen blobból, mindenképpen tekintse át az indexelő blobokat, hogy több keresési dokumentumot hozzon létre, hogy megismerje a dokumentumkulcs-hozzárendelések működését. A blobindexelő képes olyan értékeket keresni vagy generálni, amelyek egyedileg definiálják az egyes új dokumentumokat. Pontosabban létrehozhat egy átmeneti értéket AzureSearch_DocumentKey , amely akkor jön létre, amikor egy blobot kisebb részekre elemeznek, ahol az érték lesz a keresési dokumentum kulcsa az indexben.

CSV-indexelés beállítása

CSV-blobok indexeléséhez hozzon létre vagy frissítsen egy indexelődefiníciót az delimitedText Indexelő létrehozása kérelem elemzési módjával.

Csak az UTF-8 kódolás támogatott.

{
  "name" : "my-csv-indexer",
  ... other indexer properties
  "parameters" : { "configuration" : { "parsingMode" : "delimitedText", "firstLineContainsHeaders" : true } }
}

firstLineContainsHeaders azt jelzi, hogy az egyes blobok első (nem üres) sora fejléceket tartalmaz. Ha a blobok nem tartalmaznak kezdeti fejlécsort, a fejléceket az indexelő konfigurációjában kell megadni:

"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } } 

A határoló karaktert a delimitedTextDelimiter konfigurációs beállítással szabhatja testre. Például:

"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextDelimiter" : "|" } }

Feljegyzés

Tagolt szövegelemző módban az Azure AI Search feltételezi, hogy az összes blob CSV. Ha ugyanabban az adatforrásban CSV- és nem CSV-blobokat használ, érdemes lehet fájlkiterjesztési szűrőkkel szabályozni, hogy mely fájlokat importálja az egyes indexelők futtatásakor.

Példák kérésére

Ha mindent egybevetünk, íme a teljes hasznos adatokra vonatkozó példa.

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>" }
}   

Indexelő:

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" } }
}

Lásd még