Sınırlandırılmış Metin ayrıştırma modunu kullanarak CSV bloblarını ve dosyalarını dizine alma

Uyarı

Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.

Şunlar için geçerlidir: Blob depolama dizin oluşturucuları, Dosyalar dizin oluşturucuları (önizleme)

Azure Yapay Zeka Arama'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 tırnak işareti içeriyorsa, kaçış karakteri olarak çift tırnak ("") 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 geçici bir yapı AzureSearch_DocumentKey oluşturabilir; ve bu durumda 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" : "|" } }

Uyarı

Sınırlandırılmış metin ayrıştırma modunda, Azure Yapay Zeka Arama 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=2026-04-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=2026-04-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" } }
}