Sınırlandırılmış Metin ayrıştırma modunu kullanarak CSV bloblarını ve dosyalarını dizine alma
Şunlar için geçerlidir: Blob depolama dizin oluşturucuları, Dosyalar dizin oluşturucuları
Azure AI Search'te, Azure Blob Depolama ve Azure Dosyalar için dizin oluşturucular, CSV'deki her satırı ayrı bir delimitedText
arama belgesi olarak değerlendiren CSV dosyaları için ayrıştırma modunu destekler. Örneğin, aşağıdaki virgülle ayrılmış metin göz önüne alındığında, delimitedText
ayrıştırma modu arama dizininde iki belgeyle sonuçlanır:
id, datePublished, tags
1, 2016-01-12, "azure-search,azure,cloud"
2, 2016-07-07, "cloud,mobile"
CSV dosyasının içindeki bir alan sınırlayıcı içeriyorsa, bu alan tırnak içine alınmalıdır. Alan bir teklif içeriyorsa, çift tırnak (""
) kullanılarak kaçış karakteri kullanılmalıdır.
id, datePublished, tags
1, 2020-01-05, "tags,with,""quoted text"""
delimitedText
Ayrıştırma modu olmadan CSV dosyasının tüm içeriği tek bir arama belgesi olarak değerlendirilir.
Tek bir blobdan birden çok arama belgesi oluşturduğunuzda, belge anahtarı atamalarının nasıl çalıştığını anlamak için birden çok arama belgesi oluşturmak için Dizin oluşturma bloblarını gözden geçirmeyi unutmayın. Blob dizin oluşturucu, her yeni belgeyi benzersiz olarak tanımlayan değerleri bulma veya oluşturma yeteneğine sahiptir. Özellikle, bir blob daha küçük parçalara ayrıştırıldığında bir geçiş AzureSearch_DocumentKey
oluşturabilir ve burada değer, dizinde arama belgesinin anahtarı olarak kullanılır.
CSV dizin oluşturmayı ayarlama
CSV bloblarını dizine almak için dizin oluşturucu oluşturma isteğinde delimitedText
dizin oluşturucu tanımını ayrıştırma moduyla oluşturun veya güncelleştirin.
Yalnızca UTF-8 kodlaması desteklenir.
{
"name" : "my-csv-indexer",
... other indexer properties
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "firstLineContainsHeaders" : true } }
}
firstLineContainsHeaders
her blobun ilk (boş olmayan) satırının üst bilgiler içerdiğini gösterir. Bloblar bir ilk üst bilgi satırı içermiyorsa, üst bilgiler dizin oluşturucu yapılandırmasında belirtilmelidir:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
Sınırlayıcı karakterini yapılandırma ayarını kullanarak delimitedTextDelimiter
özelleştirebilirsiniz. Örneğin:
"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextDelimiter" : "|" } }
Not
Sınırlandırılmış metin ayrıştırma modunda, Azure AI Search tüm blobların CSV olduğunu varsayar. Aynı veri kaynağında CSV ve CSV olmayan blobların bir karışımı varsa, her dizin oluşturucu çalıştırmasında hangi dosyaların içeri aktarılacağını denetlemek için dosya uzantısı filtrelerini kullanmayı göz önünde bulundurun.
İstek örnekleri
Hepsini bir araya getirmek için tam yük örnekleri aşağıda verilmiştir.
Veri kaynağı:
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>" }
}
Dizinleyici:
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" } }
}