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 dizin oluşturucuları, Dosya 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ıyı 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 Blobları dizine ekleme'yi 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 oluşturulan ve değerin dizinde arama belgesinin anahtarı olarak kullanıldığı bir geçiş AzureSearch_DocumentKey oluşturabilir.

CSV dizinini ayarlama

CSV bloblarını dizine almak için dizin oluşturucu oluşturma isteğinde delimitedTextdizin 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.

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

Dizinleyici:

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

Ayrıca bkz.