Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.
Penting
Fitur, kemampuan, atau properti yang ditandai (pratinjau) tidak tercakup dalam perjanjian tingkat layanan, tidak disarankan untuk beban kerja produksi, dan mungkin berubah atau dibatasi sebelum tersedia secara umum. Ketentuan pratinjau Pencarian Azure AI berlaku untuk semua fungsionalitas pratinjau, baik itu mandiri atau bagian dari fitur yang tersedia secara umum.
Penting
Fitur dan fungsionalitas ini mendukung koneksi ke layanan layanan Microsoft dan pihak ketiga lainnya. Penggunaan layanan ini tunduk pada persyaratan masing-masing dan dapat mengakibatkan pemrosesan data atau penyimpanan di luar batas kepatuhan Azure, serta data yang mengalir ke batas kepatuhan Azure.
Anda bertanggung jawab untuk mengelola apakah data Anda akan mengalir di luar batas kepatuhan dan geografis organisasi Anda dan implikasi terkait, dan bahwa izin, batas, dan persetujuan yang sesuai disediakan.
Anda bertanggung jawab untuk meninjau dan menguji aplikasi yang Anda buat dengan cermat dalam konteks kasus penggunaan spesifik Anda dan membuat semua keputusan dan penyesuaian yang sesuai. Ini termasuk menerapkan mitigasi AI Anda sendiri yang bertanggung jawab, seperti metaprompts, filter konten, atau sistem keamanan lainnya, dan memastikan aplikasi Anda memenuhi standar kualitas, keandalan, keamanan, dan kepercayaan yang sesuai. Untuk informasi selengkapnya, lihat Catatan Transparansi Pencarian Azure AI.
pengindeks Azure Database for MySQL (pratinjau) mengimpor konten dari Azure Database for MySQL Flexible Server ke dalam indeks Pencarian Azure AI. Input ke pengindeks adalah baris dari satu tabel atau tampilan. Output adalah indeks pencarian dengan konten yang dapat dicari di bidang individual.
Artikel ini melengkapi Buat indeks dengan informasi khusus untuk pengindeksan dari Azure Database for MySQL Flexible Server. Ini menggunakan REST API untuk menunjukkan alur kerja tiga bagian yang umum untuk semua pengindeks: membuat sumber data, membuat indeks, membuat pengindeks. Ekstraksi data terjadi saat Anda mengirimkan permintaan Buat Pengindeks.
Saat dikonfigurasi untuk menyertakan high-water mark dan penghapusan sementara, pengindeks memproses semua perubahan, mengunggah, dan menghapus untuk database MySQL Anda. Ini mencerminkan perubahan ini dalam indeks pencarian Anda. Ekstraksi data terjadi saat Anda mengirimkan permintaan Buat Pengindeks.
Prasyarat
Lengkapi formulir pendaftaran pratinjau pengindeks. Pendaftaran disetujui secara otomatis.
Azure Database untuk Server Fleksibel MySQL dan data sampel. Data harus berada dalam tabel atau tampilan. Kunci primer diperlukan. Jika Anda menggunakan tampilan, tampilan tersebut harus memiliki kolom penanda batas atas.
Izin untuk membaca Connection string full access menyertakan kunci yang memberikan akses ke konten, tetapi jika Anda menggunakan peran Azure, pastikan identitas yang dikelola untuk layanan search mendapatkan izin Reader di MySQL.
Klien REST untuk membuat sumber data, indeks, dan pengindeks.
Anda juga dapat menggunakan Azure SDK untuk .NET. Anda tidak dapat menggunakan portal Azure untuk pembuatan pengindeks, tetapi Anda dapat mengelola pengindeks dan sumber data setelah dibuat.
Pratinjau batasan
Saat ini, pelacakan perubahan dan deteksi penghapusan tidak berfungsi jika tanggal atau tanda waktu seragam untuk semua baris. Batasan ini adalah masalah yang diketahui untuk ditangani dalam pembaruan pratinjau. Hingga masalah ini diatasi, jangan tambahkan set keterampilan ke pengindeks MySQL.
Pratinjau tidak mendukung jenis geometri dan blob.
Seperti yang disebutkan, tidak ada dukungan portal untuk pembuatan pengindeks, tetapi pengindeks mySQL dan sumber data dapat dikelola di portal Azure setelah ada. Misalnya, Anda dapat mengedit definisi, dan mengatur ulang, menjalankan, atau menjadwalkan pengindeks.
Menentukan sumber data
Definisi sumber data menentukan data untuk mengindeks, kredensial, dan kebijakan untuk mengidentifikasi perubahan dalam data. Sumber data didefinisikan sebagai sumber daya independen sehingga dapat digunakan oleh beberapa pengindeks.
Buat atau Perbarui Sumber Data menentukan definisi. Pastikan untuk menggunakan versi pratinjau REST API saat membuat sumber data.
{
"name" : "hotel-mysql-ds",
"description" : "[Description of MySQL data source]",
"type" : "mysql",
"credentials" : {
"connectionString" :
"Server=[MySQLServerName].MySQL.database.azure.com; Port=3306; Database=[DatabaseName]; Uid=[UserName]; Pwd=[Password]; SslMode=Preferred;"
},
"container" : {
"name" : "[TableName]"
},
"dataChangeDetectionPolicy" : {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "[HighWaterMarkColumn]"
}
}
Poin-poin penting:
Atur
typeke"mysql"(diperlukan).Atur
credentialsmenjadi string koneksi ADO.NET. Anda dapat menemukan string koneksi di portal Azure, pada halaman Koneksi untuk MySQL.Atur
containerke nama tabel.Atur
dataChangeDetectionPolicyjika data volatil, dan Anda ingin pengindeks hanya memproses item baru dan yang diperbarui pada pemrosesan selanjutnya.Atur
dataDeletionDetectionPolicyjika Anda ingin menghapus dokumen pencarian dari indeks pencarian saat item sumber dihapus.
Catatan
Untuk properti nama kontainer, nilai dibatasi hanya untuk mengizinkan huruf, angka, garis bawah (_), titik (.), tanda hubung tunggal (-), dan kurung siku ([])
Membuat indeks
Buat atau Perbarui Indeks menentukan skema indeks:
{
"name" : "hotels-mysql-ix",
"fields": [
{ "name": "ID", "type": "Edm.String", "key": true, "searchable": false },
{ "name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false },
{ "name": "Category", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true },
{ "name": "City", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true },
{ "name": "Description", "type": "Edm.String", "searchable": false, "filterable": false, "sortable": false }
]
}
Jika kunci utama dalam tabel sumber cocok dengan kunci dokumen (dalam hal ini, "ID"), pengindeks mengimpor kunci utama sebagai kunci dokumen.
Jenis data pemetaan
Tabel berikut memetakan database MySQL ke yang setara dengan Pencarian Azure AI. Untuk informasi selengkapnya, lihat Jenis data yang didukung (Pencarian Azure AI).
Catatan
Pratinjau tidak mendukung jenis geometri dan blob.
| Jenis data MySQL | tipe bidang Pencarian Azure AI |
|---|---|
bool, boolean |
Edm.Boolean, Edm.String |
tinyint, smallint, mediumint, int, integer, year |
Edm.Int32, Edm.Int64, Edm.String |
bigint |
Edm.Int64, Edm.String |
float, double, real |
Edm.Double, Edm.String |
date, datetime, timestamp |
Edm.DateTimeOffset, Edm.String |
char, tinytext, varchar, mediumtext, text, longtext, enum, set, time |
Edm.String |
| data numerik yang tidak ditandatangani, serial, desimal, desimal, bit, blob, biner, geometri | N/A |
Mengonfigurasi dan menjalankan pengindeks MySQL
Setelah indeks dan sumber data dibuat, Anda siap untuk membuat pengindeks. Konfigurasi pengindeks menentukan input, parameter, dan properti yang mengontrol perilaku run time.
Buat atau perbarui pengindeks dengan memberinya nama dan mereferensikan sumber data dan indeks target:
{
"name" : "hotels-mysql-idxr",
"dataSourceName" : "hotels-mysql-ds",
"targetIndexName" : "hotels-mysql-ix",
"disabled": null,
"schedule": null,
"parameters": {
"batchSize": null,
"maxFailedItems": null,
"maxFailedItemsPerBatch": null,
"base64EncodeKeys": null,
"configuration": { }
},
"fieldMappings" : [ ],
"encryptionKey": null
}
Poin-poin penting:
Tentukan pemetaan bidang jika ada perbedaan dalam nama atau jenis bidang, atau jika Anda memerlukan beberapa versi bidang sumber dalam indeks pencarian.
Pengindeks berjalan secara otomatis saat dibuat. Anda dapat mencegahnya berjalan dengan mengatur
disabledketrue. Untuk mengontrol eksekusi pengindeks, jalankan pengindeks sesuai permintaan atau letakkan sesuai jadwal.
Periksa status pengindeks
Kirim permintaan Dapatkan Status Pengindeks untuk memantau eksekusi pengindeks:
GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2026-08-01-preview
Content-Type: application/json
api-key: [admin key]
Respons mencakup status dan jumlah item yang diproses. Ini akan terlihat mirip dengan contoh berikut:
{
"status":"running",
"lastResult": {
"status":"success",
"errorMessage":null,
"startTime":"2024-02-21T00:23:24.957Z",
"endTime":"2024-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
"executionHistory":
[
{
"status":"success",
"errorMessage":null,
"startTime":"2024-02-21T00:23:24.957Z",
"endTime":"2024-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
... earlier history items
]
}
Riwayat eksekusi berisi hingga 50 eksekusi yang terakhir selesai, yang diurutkan dalam urutan kronologis terbalik sehingga eksekusi terbaru menjadi yang pertama.
Mengindeks baris baru dan yang diubah
Setelah pengindeks mengisi indeks pencarian sepenuhnya, Anda mungkin ingin proses pengindeksan selanjutnya dijalankan untuk mengindeks secara bertahap dan otomatis hanya baris baru dan yang diubah dalam database Anda.
Untuk mengaktifkan pengindeksan bertahap, atur dataChangeDetectionPolicy properti dalam definisi sumber data Anda. Properti ini memberi tahu pengindeks mekanisme pelacakan perubahan mana yang digunakan pada data Anda.
Untuk pengindeks Azure Database for MySQL, satu-satunya kebijakan yang didukung adalah HighWaterMarkChangeDetectionPolicy.
Kebijakan deteksi perubahan pengindeks bergantung pada keberadaan kolom penanda batas tinggi yang merekam versi baris, atau tanggal dan waktu saat baris terakhir diperbarui. Sering kali DATE, DATETIME, atau TIMESTAMP berada pada tingkat granularitas yang cukup untuk memenuhi persyaratan kolom penanda batas tinggi.
Di database MySQL Anda, kolom batas maksimum data harus memenuhi persyaratan berikut:
- Semua sisipan data harus menentukan nilai untuk kolom tersebut.
- Semua pembaruan pada item juga mengubah nilai kolom.
- Nilai kolom ini meningkat dengan setiap sisipan atau pembaruan.
- Kueri dengan klausa
WHEREdanORDER BYberikut dapat dijalankan secara efisien:WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]
Contoh berikut menunjukkan definisi sumber data dengan kebijakan deteksi perubahan:
{
"name" : "[Data source name]",
"type" : "mysql",
"credentials" : { "connectionString" : "[connection string]" },
"container" : { "name" : "[table or view name]" },
"dataChangeDetectionPolicy" : {
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName" : "[last_updated column name]"
}
}
Penting
Jika Anda menggunakan tampilan, Anda harus menetapkan kebijakan penanda batas di sumber data pengindeks Anda.
Jika tabel sumber tidak memiliki indeks pada kolom tanda air tinggi, kueri yang digunakan oleh pengindeks MySQL mungkin kehabisan waktu. Secara khusus, ORDER BY [High Water Mark Column] klausa mengharuskan indeks berjalan secara efisien ketika tabel berisi banyak baris.
Mengindeks baris yang dihapus
Saat baris dihapus dari tabel atau tampilan, Anda biasanya ingin menghapus baris tersebut dari indeks pencarian juga. Namun, jika baris dihapus secara fisik dari tabel, pengindeks tidak memiliki cara untuk menyimpulkan adanya rekaman yang tidak ada lagi. Solusinya adalah menggunakan teknik penghapusan sementara untuk menghapus baris secara logis tanpa menghapusnya dari tabel. Tambahkan kolom ke tabel Anda atau tampilkan dan tandai baris sebagai dihapus menggunakan kolom tersebut.
Mengingat kolom yang menyediakan status penghapusan, pengindeks dapat dikonfigurasi untuk menghapus dokumen pencarian yang status penghapusannya diatur ke true. Properti konfigurasi yang mendukung perilaku ini adalah kebijakan deteksi penghapusan data, yang ditentukan dalam definisi sumber data sebagai berikut:
{
…,
"dataDeletionDetectionPolicy" : {
"@odata.type" : "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName" : "[a column name]",
"softDeleteMarkerValue" : "[the value that indicates that a row is deleted]"
}
}
softDeleteMarkerValue harus berupa string. Misalnya, jika Anda memiliki kolom bilangan bulat di mana baris yang dihapus ditandai dengan nilai 1, gunakan "1". Jika Anda memiliki kolom BIT di mana baris yang dihapus ditandai dengan nilai Boolean 'true', gunakan string literal True atau true (penggunaan huruf kapital atau huruf kecil tidak masalah).
Langkah berikutnya
Anda sekarang dapat menjalankan pengindeks, status pemantauan, atau menjadwalkan eksekusi pengindeks. Artikel berikut berlaku untuk pengindeks yang menarik konten dari Azure MySQL: