Parameter indeks dan tanda database berikut digunakan bersama-sama untuk menemukan keseimbangan yang tepat antara perolehan dan QPS.
Parameter penyesuaian
Deskripsi
Jenis opsi
max_num_levels
Jumlah maksimum tingkat sentroid dari hierarki pengelompokan K-means.
Indeks hierarki dua tingkat: Secara default disetel ke 1 untuk hierarki dua tingkat (1 tingkat centroid + tingkat daun bawah).
Indeks pohon tiga tingkat: Secara default ditetapkan ke 2 untuk pohon tiga tingkat (2 tingkat centroid + tingkat daun bawah)
Tetapkan nilai ke 2 jika jumlah baris vektor melebihi 100 juta baris.
Tetapkan nilai ke 1 jika jumlah baris vektor kurang dari 10 juta baris.
Tetapkan ke 1 atau 2 jika jumlah baris vektor berada di antara 10 juta dan 100 juta baris untuk mengoptimalkan waktu pembuatan indeks (tetapkan ke 2) atau mengoptimalkan perolehan penelusuran (tetapkan ke 1).
Pembuatan indeks (opsional)
num_leaves
Jumlah partisi yang akan diterapkan ke indeks ini. Jumlah partisi yang Anda terapkan saat membuat indeks memengaruhi performa indeks. Dengan meningkatkan partisi untuk sejumlah vektor, Anda membuat indeks yang lebih terperinci, yang meningkatkan perolehan dan performa kueri. Namun, hal ini akan menyebabkan waktu pembuatan indeks yang lebih lama.
Karena pohon tiga tingkat dibuat lebih cepat daripada pohon dua tingkat, Anda dapat meningkatkan num_leaves_value saat membuat indeks pohon tiga tingkat untuk mencapai performa yang lebih baik.
Indeks dua tingkat: Tetapkan nilai ini ke nilai apa pun antara 1 dan 1048576.
Untuk indeks yang menyeimbangkan pembuatan indeks yang cepat dan performa penelusuran yang baik, gunakan sqrt(ROWS) sebagai titik awal, dengan ROWS adalah jumlah baris vektor. Jumlah vektor yang dimiliki setiap partisi dihitung oleh ROWS/sqrt(ROWS) = sqrt(ROWS).
Karena indeks pohon dua tingkat dapat dibuat pada set data dengan kurang dari 10 juta baris vektor, setiap partisi akan menyimpan kurang dari (sqrt(10M)) vektor, yaitu 3200 vektor. Untuk kualitas penelusuran vektor yang optimal, sebaiknya minimalkan jumlah vektor di setiap partisi. Ukuran partisi yang direkomendasikan adalah sekitar 100 vektor per partisi, jadi tetapkan num_leaves ke ROWS/100. Jika Anda memiliki 10 juta vektor,Anda akan menetapkan num_leaves ke 100.000.
Indeks tiga tingkat: Tetapkan nilai ini ke nilai apa pun antara 1 dan 1048576.
Jika Anda tidak yakin dalam memilih nilai yang tepat, gunakan power(ROWS, 2/3) sebagai titik awal, dengan ROWS adalah jumlah baris vektor. Jumlah vektor yang dimiliki setiap partisi dihitung oleh ROWS/power(ROWS, 2/3) = power(ROWS, 1/3).
Karena indeks pohon tiga tingkat dapat dibuat pada set data dengan baris vektor lebih dari 100 juta, setiap partisi akan menyimpan lebih dari (power(100M, 1/3)) vektor, yaitu 465 vektor. Untuk kualitas penelusuran vektor yang optimal, sebaiknya minimalkan jumlah vektor di setiap partisi. Ukuran partisi yang direkomendasikan adalah sekitar 100 vektor per partisi, jadi tetapkan num_leaves ke ROWS/100. Jika Anda memiliki 100 juta vektor, Anda akan menetapkan num_leaves ke 1 juta.
Pembuatan indeks (wajib)
quantizer
Jenis penguantisasi yang ingin Anda gunakan untuk pohon K-means. Nilai default ditetapkan ke SQ8 yang memberikan performa kueri yang lebih baik dengan kehilangan perolehan kembali minimal (biasanya kurang dari 1-2%).
Tetapkan ke FLAT jika perolehan kembali 99% atau lebih tinggi diperlukan.
Pembuatan indeks (opsional)
scann.enable_inline_filtering
Mengaktifkan dukungan pemfilteran inline yang membuat kueri data Anda dan menerapkan filter langsung dalam operasi penelusuran kemiripan vektor. Kueri kemiripan vektor ini menggunakan filter pada tabel database yang sama dan menyelesaikan evaluasi filter saat menghitung jarak untuk identifikasi tetangga terdekat. Opsi ini dinonaktifkan secara default.
Untuk mengaktifkan pemfilteran inline, tetapkan parameter ini ke true. Jika Anda melihat penurunan performa, tetapkan ke false.
Mengaktifkan Analisis Komponen Utama (PCA), yang merupakan teknik pengurangan dimensi yang digunakan untuk secara otomatis
mengurangi ukuran embedding jika memungkinkan. Opsi ini diaktifkan secara default.
Setel ke
false jika Anda melihat penurunan kualitas ingatan.
Pembuatan indeks (opsional)
scann.num_leaves_to_search
Flag database ini mengontrol jumlah absolut daun atau partisi yang akan ditelusuri sehingga Anda dapat menyeimbangkan antara perolehan dan QPS. Nilai defaultnya adalah 1% dari nilai yang ditetapkan di num_leaves.
Nilai yang lebih tinggi akan menghasilkan perolehan yang lebih baik, tetapi QPS yang lebih rendah. Demikian pula, nilai yang lebih rendah akan menghasilkan perolehan yang lebih rendah, tetapi QPS yang lebih tinggi.
Waktu proses kueri (opsional)
scann.pre_reordering_num_neighbors
Jika disetel, tanda database menentukan jumlah tetangga kandidat yang akan dipertimbangkan selama tahap pengurutan ulang setelah penelusuran awal mengidentifikasi sekumpulan kandidat. Tetapkan parameter ini ke nilai yang lebih tinggi daripada jumlah tetangga yang ingin Anda tampilkan dalam kueri.
Nilai yang lebih tinggi menghasilkan perolehan yang lebih baik, tetapi QPS yang lebih rendah. Tetapkan nilai ini ke 0 untuk menonaktifkan pengurutan ulang. Nilai defaultnya adalah 0 jika PCA tidak diaktifkan selama pembuatan indeks. Jika tidak, defaultnya adalah 50 x K, dengan K adalah LIMIT yang ditentukan dalam kueri.
Waktu proses 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 ANN ScaNN dalam aplikasi yang sensitif terhadap latensi. Setelan ini tidak meningkatkan latensi kueri tunggal jika database sudah terikat CPU. Nilai defaultnya adalah 2.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-04 UTC."],[[["\u003cp\u003eThis page provides detailed reference information regarding the tuning parameters for the ScaNN Index.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003emax_num_levels\u003c/code\u003e, \u003ccode\u003enum_leaves\u003c/code\u003e, and \u003ccode\u003equantizer\u003c/code\u003e parameters are used during index creation and can be adjusted for optimal performance based on the size of the vector dataset.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003escann.enable_pca\u003c/code\u003e parameter, enabled by default, uses Principal Component Analysis to reduce embedding size, but can be disabled if recall deteriorates.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003escann.num_leaves_to_search\u003c/code\u003e, \u003ccode\u003escann.pre_reordering_num_neighbors\u003c/code\u003e, and \u003ccode\u003escann.num_search_threads\u003c/code\u003e are query runtime parameters that impact the trade-off between recall and QPS, and can be adjusted based on application requirements.\u003c/p\u003e\n"],["\u003cp\u003eAdjusting the \u003ccode\u003enum_leaves\u003c/code\u003e parameter when creating an index can create a more fine-grained index, improving recall and query performance at the cost of longer index creation times.\u003c/p\u003e\n"]]],[],null,["# ScaNN Index reference\n\nSelect a documentation version: Current (16.8.0)keyboard_arrow_down\n\n- [Current (16.8.0)](/alloydb/omni/current/docs/reference/scann-index-reference)\n- [16.8.0](/alloydb/omni/16.8.0/docs/reference/scann-index-reference)\n- [16.3.0](/alloydb/omni/16.3.0/docs/reference/scann-index-reference)\n- [15.12.0](/alloydb/omni/15.12.0/docs/reference/scann-index-reference)\n- [15.7.1](/alloydb/omni/15.7.1/docs/reference/scann-index-reference)\n- [15.7.0](/alloydb/omni/15.7.0/docs/reference/scann-index-reference)\n\n\u003cbr /\u003e\n\nThis page provides reference material for the ScaNN Index.\n\n\u003cbr /\u003e\n\nTuning parameters\n-----------------\n\nThe following index parameters and database flags are used together to find the right balance of recall and QPS.\n\nOption type Index creation Query runtime \n\nWhat's next\n-----------\n\n- [Get started with vector embeddings using AlloyDB AI](https://codelabs.developers.google.com/alloydb-ai-embedding#0)."]]