Untuk tutorial langkah demi langkah tentang cara menerapkan penelusuran vektor dari awal hingga akhir, lihat panduan tentang cara Melakukan penelusuran vektor.
Parameter penyetelan
Parameter indeks dan kueri berikut digunakan untuk menemukan keseimbangan yang tepat antara perolehan dan kueri per detik (QPS).
| Parameter penyetelan | Deskripsi | Jenis opsi |
|---|---|---|
mode |
Menentukan indeks ScaNN sebagai indeks yang disetel secara otomatis atau disetel secara manual
indeks. Opsi yang tersedia adalah sebagai berikut:
Untuk mengetahui informasi selengkapnya, lihat Membuat indeks ScaNN. |
Pembuatan indeks (opsional) |
max_num_levels |
Jumlah maksimum tingkat sentroid dari pohon pengelompokan K-means. Untuk
panduan tentang cara menetapkan nilai ini, lihat
Menyetel indeks ScaNN.
Nilai yang tersedia adalah sebagai berikut:
Jika Anda menetapkan |
Pembuatan indeks (opsional) |
num_leaves |
Jumlah partisi yang akan diterapkan ke indeks ini. Nilai maksimumnya adalah
30000000. Untuk mengetahui informasi selengkapnya tentang cara memilih nilai ini, lihat
Menyetel indeks ScaNN
dan
Praktik terbaik untuk menyetel indeks ScaNN.
|
Pembuatan indeks (wajib untuk indeks yang disetel secara manual ) |
quantizer |
Jenis quantizer yang ingin Anda gunakan untuk pohon K-means. Nilai default ditetapkan ke SQ8 yang memberikan performa kueri yang lebih baik dengan kehilangan perolehan minimal (biasanya kurang dari 1-2%).Tetapkan ke FLAT jika perolehan 99% atau lebih tinggi diperlukan. |
Pembuatan indeks (opsional) |
scann.enable_pca |
Mengaktifkan Principal Component Analysis (PCA), yang merupakan teknik pengurangan dimensi yang digunakan untuk mengurangi ukuran embedding secara otomatis
jika memungkinkan. Opsi ini diaktifkan secara default. Tetapkan ke false jika Anda mengamati penurunan perolehan. |
Pembuatan indeks (opsional) |
auto_maintenance |
Mempertahankan indeks ScaNN secara otomatis sehingga saat set data Anda bertambah, AlloyDB Omni akan menganalisis dan memperbarui sentroid, serta membagi partisi outlier besar. Tindakan ini akan otomatis meningkatkan QPS dan hasil penelusuran. Untuk mengetahui informasi selengkapnya, lihat Mempertahankan indeks secara otomatis. |
Pembuatan indeks (opsional) |
scann.pct_leaves_to_search |
Mengelola jumlah partisi yang ditelusuri indeks vektor secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Persentase partisi penelusuran. | |
scann.num_leaves_to_search
|
Jumlah absolut partisi yang akan ditelusuri. Hal ini memungkinkan Anda melakukan trade-off antara
perolehan kueri dan QPS. Nilai default-nya adalah 1% dari
Nilai yang lebih tinggi menghasilkan perolehan kueri yang lebih baik, tetapi QPS yang lebih rendah. Demikian pula, nilai yang lebih rendah menghasilkan perolehan kueri yang lebih buruk, tetapi QPS yang lebih baik. |
Runtime kueri (opsional) |
scann.pre_reordering_num_neighbors
|
Menentukan jumlah kandidat tetangga yang akan dipertimbangkan selama tahap pengurutan ulang setelah penelusuran awal mengidentifikasi sekumpulan kandidat. Tetapkan parameter ini ke nilai yang lebih tinggi dari jumlah tetangga yang ingin Anda tampilkan dalam kueri. Nilai yang lebih tinggi menghasilkan perolehan yang lebih baik, tetapi QPS yang lebih rendah.
Nilai default-nya adalah |
Runtime kueri (opsional) |
scann.num_search_threads |
Jumlah thread penelusur untuk penelusuran multi-thread. Hal ini dapat membantu mengurangi latensi kueri tunggal dengan menggunakan lebih dari satu thread untuk penelusuran ScaNN ANN di aplikasi yang sensitif terhadap latensi. Setelan ini tidak meningkatkan latensi kueri tunggal jika database sudah terikat CPU. Nilai default-nya adalah 2. |
Runtime kueri (opsional) |
|
Jika ditetapkan ke relaxed_order, flag database akan mengatasi perolehan yang tidak memadai. Perolehan yang tidak memadai dapat terjadi jika perolehan yang diamati dalam kueri berada di bawah perolehan target, yang lebih mungkin terjadi saat menggunakan filter. Setelan ini membantu mencapai perolehan target dengan memungkinkan pemindaian vektor terus menelusuri di luar batas num_leaves_to_search hingga jumlah hasil yang memadai ditemukan. |
Runtime kueri (opsional) |
|
Flag database ini menetapkan batas atas pada persentase total daun yang dapat dikunjungi untuk kueri yang Anda jalankan dengan scann.satisfy_limit diaktifkan. Ini adalah satu-satunya GUC batas atas yang tersedia dan berlaku untuk mode penelusuran otomatis dan manual. Hal ini mencegah penelusuran melampaui batas, yang dapat menurunkan performa secara signifikan. Hal ini berlaku jika scann.satisfy_limit diaktifkan.Anda dapat menetapkan parameter ini ke nilai apa pun antara 0 hingga 100. Nilai default-nya adalah 15%. Nilai default ini didasarkan pada alasan bahwa jika penelusuran perlu memeriksa lebih dari 15% daun, filter kemungkinan cukup selektif sehingga penelusuran tetangga terdekat perkiraan (ANN) tidak memberikan manfaat, sehingga membuat tetangga terdekat k-pra-pemfilteran (KNN) menjadi pilihan yang lebih sesuai. |
Runtime kueri (opsional) |