CSV-blobs en bestanden indexeren met behulp van de parseringsmodus vanlimitedText
Van toepassing op: Blob Storage-indexeerfuncties, bestandsindexeerfuncties
In Azure AI Search ondersteunen indexeerfuncties voor Azure Blob Storage en Azure Files een delimitedText
parseermodus voor CSV-bestanden die elke regel in het CSV behandelen als een afzonderlijk zoekdocument. Op basis van de volgende door komma's gescheiden tekst zou de delimitedText
parseringsmodus bijvoorbeeld resulteren in twee documenten in de zoekindex:
id, datePublished, tags
1, 2016-01-12, "azure-search,azure,cloud"
2, 2016-07-07, "cloud,mobile"
Als een veld in het CSV-bestand het scheidingsteken bevat, moet het tussen aanhalingstekens worden geplaatst. Als het veld een aanhalingsteken bevat, moet deze worden ontsnapt met dubbele aanhalingstekens (""
).
id, datePublished, tags
1, 2020-01-05, "tags,with,""quoted text"""
Zonder de delimitedText
parseermodus wordt de volledige inhoud van het CSV-bestand behandeld als één zoekdocument.
Wanneer u meerdere zoekdocumenten maakt op basis van één blob, moet u indexeringsblobs controleren om meerdere zoekdocumenten te produceren om te begrijpen hoe documentsleuteltoewijzingen werken. De blob-indexeerfunctie kan waarden vinden of genereren die elk nieuw document uniek definiëren. Het kan met name een transitief AzureSearch_DocumentKey
maken wanneer een blob in kleinere delen wordt geparseerd, waarbij de waarde vervolgens wordt gebruikt als de sleutel van het zoekdocument in de index.
CSV-indexering instellen
Als u CSV-blobs wilt indexeren, moet u een indexeerfunctiedefinitie maken of bijwerken met de delimitedText
parseringsmodus in een aanvraag voor indexeerfunctie maken.
Alleen UTF-8-codering wordt ondersteund.
{
"name" : "my-csv-indexer",
... other indexer properties
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "firstLineContainsHeaders" : true } }
}
firstLineContainsHeaders
geeft aan dat de eerste regel (niet-lege) van elke blob headers bevat. Als blobs geen initiële headerregel bevatten, moeten de headers worden opgegeven in de configuratie van de indexeerfunctie:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
U kunt het scheidingsteken aanpassen met behulp van de delimitedTextDelimiter
configuratie-instelling. Bijvoorbeeld:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextDelimiter" : "|" } }
Notitie
In de geparseerde tekstmodus gaat Azure AI Search ervan uit dat alle blobs CSV zijn. Als u een combinatie van CSV- en niet-CSV-blobs in dezelfde gegevensbron hebt, kunt u overwegen om filters voor bestandsextensies te gebruiken om te bepalen welke bestanden worden geïmporteerd op elke indexeerfunctie.
Voorbeelden van aanvragen
Hier vindt u de volledige voorbeelden van nettoladingen.
Gegevensbron:
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>" }
}
Indexeerfunctie:
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" } }
}