Bagikan melalui


Mengindeks blob dan file CSV menggunakan mode penguraian delimitedText

Berlaku untuk: Pengindeks Blob, Pengindeks file

Di Azure AI Search, pengindeks untuk Azure Blob Storage dan Azure Files mendukung delimitedText mode penguraian untuk file CSV yang memperlakukan setiap baris di CSV sebagai dokumen pencarian terpisah. Misalnya, mengingat teks yang dibatasi koma berikut, delimitedText mode penguraian akan menghasilkan dua dokumen dalam indeks pencarian:

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

Jika bidang di dalam file CSV berisi delimeter, bidang harus dibungkus dalam tanda kutip. Jika bidang berisi tanda kutip, bidang harus diloloskan menggunakan tanda kutip ganda ("").

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

Tanpa mode penguraian delimitedText, seluruh konten file CSV akan diperlakukan sebagai satu dokumen pencarian.

Setiap kali Anda membuat beberapa dokumen pencarian dari satu blob, pastikan untuk meninjau Blob Pengindeksan untuk menghasilkan beberapa dokumen pencarian untuk memahami cara kerja penetapan kunci dokumen. Pengindeks blob mampu menemukan atau menghasilkan nilai yang secara unik mendefinisikan setiap dokumen baru. Secara khusus, pengindeks blob dapat membuat AzureSearch_DocumentKey yang bersifat sementara, yang dihasilkan ketika blob diurai menjadi bagian yang lebih kecil, di mana nilai kemudian digunakan sebagai kunci dokumen pencarian dalam indeks.

Menyiapkan pengindeksan CSV

Untuk mengindeks blob CSV, buat atau perbarui definisi pengindeks dengan delimitedText mode penguraian pada permintaan Buat Pengindeks .

Hanya pengodean UTF-8 yang didukung.

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

firstLineContainsHeaders menunjukkan bahwa baris pertama (tidak kosong) dari setiap blob berisi header. Jika blob tidak berisi baris header awal, header harus ditentukan dalam konfigurasi pengindeks:

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

Anda dapat menyesuaikan karakter pemisah menggunakan pengaturan konfigurasi delimitedTextDelimiter. Contoh:

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

Catatan

Dalam mode penguraian teks yang dibatasi, Azure AI Search mengasumsikan bahwa semua blob adalah CSV. Jika Anda memiliki campuran blob CSV dan non-CSV di sumber data yang sama, pertimbangkan untuk menggunakan filter ekstensi file untuk mengontrol file mana yang diimpor pada setiap pengindeks yang dijalankan.

Contoh permintaan

Menggabungkan semuanya, berikut adalah contoh payload lengkapnya.

Sumber data:

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

Pengindeks:

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

Lihat juga