Bantuan vektor di AlloyDB untuk PostgreSQL menyediakan framework SQL deklaratif yang memungkinkan Anda men-deploy, menyesuaikan, dan mengelola workload penelusuran vektor di instance Anda. Anda dapat menentukan persyaratan penelusuran vektor, membuat dan menerapkan konfigurasi SQL yang direkomendasikan, serta memantau performa workload. Untuk mempelajari lebih lanjut cara kerja bantuan vektor, lihat Ringkasan bantuan vektor.
Sebelum memulai
- Pastikan instance Anda menggunakan versi pemeliharaan yang benar.
Vector Assist memerlukan nomor versi pemeliharaan minimum
POSTGRES_17.20260128.03_06. Untuk mengetahui informasi selengkapnya tentang cara melakukan pemeliharaan mandiri, lihat Pemeliharaan mandiri performa. Aktifkan ekstensi bantuan vektor menggunakan perintah berikut di database yang ingin Anda gunakan:
CREATE EXTENSION vector_assist CASCADE;Tindakan ini akan menghasilkan skema
vector_assist, yang digunakan oleh bantuan vektor.
Menggunakan bantuan vektor untuk men-deploy workload vektor
Untuk menggunakan bantuan vektor guna men-deploy dan mengelola workload vektor, Anda harus melakukan hal berikut:
- Menentukan spesifikasi vektor
- Melihat rekomendasi bantuan vektor
- Menerapkan rekomendasi bantuan vektor
Menentukan spesifikasi vektor Anda
Menentukan spesifikasi vektor, atau spesifikasi vektor, adalah langkah pertama dalam menggunakan bantuan vektor. Bergantung pada jenis workload vektor, kolom yang Anda gunakan untuk menentukan spesifikasi vektor mungkin berbeda.
Misalnya, jika Anda ingin mengaktifkan penelusuran semantik pada kolom tertentu dalam tabel, jalankan fungsi vector_assist.define_spec untuk menentukan spesifikasi vektor Anda:
SELECT
recommendation_id,
REGEXP_REPLACE(query, 'SET hnsw.ef_search TO \d+', 'SET hnsw.ef_search TO') AS query_1,
recommendation,
vector_spec_id,
table_name,
applied,
modified
FROM vector_assist.define_spec(
table_name => 'TABLE_NAME',
vector_column_name => 'VECTOR_COLUMN_NAME',
target_recall => TARGET_RECALL,
tune_vector_index => TUNE_INDEX
);
Ganti parameter berikut:
TABLE_NAME: nama tabel yang ingin Anda gunakan dalam workload vektor.(Opsional)
VECTOR_COLUMN_NAME: kolom yang ingin Anda gunakan untuk melakukan penelusuran semantik. Jika Anda hanya memiliki satu kolom dengan vektor dalam tabel,vector_assistdapat menetapkannya secara otomatis. Jika ada lebih dari satu tabel dengan vektor, Anda harus menentukan kolom yang akan digunakan.(Opsional)
TARGET_RECALL: perolehan target yang Anda inginkan untuk dipenuhi oleh bantuan vektor. Jika ditentukan,vector_assistakan bereksperimen dengan berbagai nilaief_search, membandingkan perolehan dalam penelusuran tetangga terdekat yang tepat.vector_assistmenetapkanef_searchke nilai yang memberikan perolehan target terdekat. Nilai defaultnya adalah0.95.(Opsional)
TUNE_INDEX: boolean yang menentukan apakah bantuan vektor menyesuaikan indeks vektor dalam workload Anda. Nilai defaultnya adalahfalse, yang berarti hanya parameter terkait penelusuran (ef_search) yang disesuaikan—parameter waktu build (m,ef_construction) tidak disesuaikan.
Untuk melihat daftar lengkap semua parameter yang tersedia untuk spesifikasi vektor, lihat Referensi fungsi bantuan vektor.
Setelah Anda menjalankan kueri untuk membuat spesifikasi vektor, bantuan vektor akan otomatis menghasilkan langkah-langkah, yang disebut rekomendasi, yang harus Anda jalankan untuk men-deploy workload vektor.
Melihat rekomendasi bantuan vektor
Untuk melihat rekomendasi yang dihasilkan oleh bantuan vektor menggunakan spesifikasi vektor Anda, jalankan fungsi vector_assist.get_recommendations:
SELECT vector_assist.get_recommendations(
spec_id => 'SPEC_ID'
);
Ganti SPEC_ID dengan ID spesifikasi
dari spesifikasi vektor yang ingin Anda lihat rekomendasinya. Untuk mendapatkan
daftar spesifikasi vektor yang tersedia, lihat Mencantumkan spesifikasi vektor.
vector_assist.get_recommendations menampilkan tabel bernama
vector_assist.RECOMMENDATIONS yang berisi semua rekomendasi. Setiap
rekomendasi disimpan dalam tabel dengan spec_id terkait. Setiap
rekomendasi umumnya berisi informasi berikut:
- Kueri SQL yang perlu Anda jalankan
- Penjelasan mendetail untuk rekomendasi
- Informasi relevan lainnya yang menjelaskan rekomendasi
Menerapkan rekomendasi bantuan vektor
Anda dapat menerapkan rekomendasi yang dihasilkan satu per satu atau secara keseluruhan.
Untuk menerapkan rekomendasi tertentu, jalankan fungsi
vector_assist.apply_recommendation:
SELECT vector_assist.apply_recommendation(
recommendation_id => 'RECOMMENDATION_ID'
);
Ganti RECOMMENDATION_ID
dengan ID rekomendasi bantuan vektor yang ingin Anda terapkan dari
tabel vector_assist.RECOMMENDATIONS.
Untuk menerapkan semua rekomendasi sekaligus, jalankan fungsi
vector_assist.apply_spec
dengan parameter spec_id atau table_name:
SELECT vector_assist.apply_spec(
spec_id => 'SPEC_ID'
);
Ganti SPEC_ID dengan ID spesifikasi vektor yang ingin Anda gunakan.
Secara opsional, Anda juga dapat memasukkan parameter schema_name atau column_name.
Untuk mengetahui informasi tentang semua parameter kueri yang tersedia, lihat
Referensi fungsi bantuan vektor.
Setelah Anda menerapkan rekomendasi yang dihasilkan oleh bantuan vektor, indeks vektor siap digunakan.
Membuat kueri penelusuran
Anda dapat menggunakan bantuan vektor untuk membantu membuat kueri penelusuran yang dioptimalkan untuk workload vektor yang di-deploy menggunakan spesifikasi vektor workload dan indeks vektor yang dihasilkan. Untuk membuat kueri penelusuran yang dioptimalkan, jalankan fungsi
vector_assist.generate_query:
SELECT vector_assist.generate_query(
spec_id => 'SPEC_ID',
search_vector => 'SEARCH_VECTOR',
top_k => TOP_K,
target_recall => TARGET_RECALL,
filter_expressions => ARRAY['FILTER_EXPRESSION']
);
Ganti parameter berikut:
SPEC_ID: ID spesifikasi yang ingin Anda gunakan.SEARCH_VECTOR: vektor untuk kueri penelusuran Anda. Contoh,[1, 2, 3].(Opsional)
TOP_K: jumlah tetangga terdekat yang akan ditampilkan. Jika tidak ditentukan, nilai defaultnya adalah10.(Opsional)
TARGET_RECALL: perolehan target yang Anda inginkan untuk dipenuhi oleh bantuan vektor. Jika ditentukan,vector_assistakan bereksperimen dengan berbagai nilaief_search, membandingkan perolehan dalam penelusuran tetangga terdekat yang tepat.vector_assistmenetapkanef_searchke nilai yang memberikan perolehan target terdekat.(Opsional)
FILTER_EXPRESSION: filter apa pun untuk kueri penelusuran. Misalnya, pemfilteran berdasarkan kolom lain.
Untuk melihat daftar lengkap semua parameter yang tersedia untuk membuat kueri penelusuran, lihat Referensi fungsi bantuan vektor.
Output fungsi ini menampilkan teks yang berisi kueri SQL. Anda dapat menjalankan atau menyimpan kueri SQL ini sesuai kebutuhan.
Mencantumkan spesifikasi vektor Anda
Jika Anda perlu mencantumkan spesifikasi vektor yang ada untuk tabel, jalankan fungsi vector_assist.list_specs, atau gunakan vector_assist.get_spec untuk melihat satu spesifikasi vektor berdasarkan ID:
SELECT vector_assist.list_specs(
table_name => 'TABLE_NAME',
column_name => 'COLUMN_NAME'
);
Ganti parameter berikut:
TABLE_NAME: nama tabel yang Anda gunakan untuk menentukan spesifikasi vektor.(Opsional)
COLUMN_NAME: nama kolom vektor dalam tabel. Jika dihilangkan,vector_assist.list_specsakan menampilkan semua spesifikasi vektor yang ditentukan pada tabel yang ditentukan. Untuk mengambil spesifikasi vektor tertentu berdasarkan ID, panggilSELECT vector_assist.get_spec(spec_id => 'SPEC_ID');.
Langkah berikutnya
- Pelajari lebih lanjut bantuan vektor.
- Referensi fungsi bantuan vektor.