Panggilan mengukur seberapa efektif penelusuran mengambil semua item yang relevan untuk kueri tertentu. Misalnya, bayangkan Anda memiliki 100 embedding, yang masing-masing mewakili entity dalam database Anda. Anda mengkueri embedding dengan vektor target dan membatasinya hingga 10 hasil. Penelusuran vektor KNN menemukan 10 vektor terdekat yang tepat menggunakan metode penghitungan brute force, yang menghasilkan panggilan 100%. AlloyDB AI menggunakan metode ini secara default jika tidak ada indeks penelusuran vektor yang dibuat atau dipilih. Saat Anda membuat indeks vektor di AlloyDB Omni, indeks tersebut biasanya menggunakan ANN, yang mungkin mempartisi vektor menurut kemiripan untuk memfasilitasi pengambilan yang lebih cepat. Akibatnya, dengan menggunakan ANN, 10 vektor yang ditampilkan dalam contoh sebelumnya mungkin tidak persis 10 vektor yang paling dekat jaraknya. Jika 9 dari 10 vektor yang diambil adalah yang paling dekat dalam ruang ke vektor kueri Anda, maka panggilan Anda adalah 90%. Untuk mengetahui informasi selengkapnya, lihat Mengukur panggilan kueri vektor.
Latensi kueri menentukan seberapa cepat hasil penelusuran dibuat. Misalnya, latensi dihitung berdasarkan waktu yang dihabiskan untuk penelusuran guna menampilkan vektor setelah Anda mengirimkan kueri.
Memilih strategi penelusuran
Saat Anda melakukan penelusuran vektor di AlloyDB Omni, pilih salah satu strategi penelusuran berikut:
| Strategi Penelusuran | Deskripsi | Kasus Penggunaan |
| Tetangga k terdekat (KNN) |
Algoritma yang menemukan titik data tetangga k terdekat ke titik data kueri tertentu. Saat Anda melakukan penelusuran vektor tanpa membuat indeks, penelusuran KNN akan dilakukan secara default. Untuk lebih meningkatkan performa penelusuran KNN, tambahkan kolom embedding Anda, dan kolom lain yang terkait dengan kueri Anda, ke penyimpanan kolom di columnar engine. Anda dapat menambahkan kolom secara manual atau menambahkan kolom menggunakan kolom otomatis. |
|
| Perkiraan Tetangga Terdekat (ANN) | Algoritma yang menemukan titik data terdekat secara perkiraan. ANN membagi titik data pelanggan yang ada ke dalam grup kecil berdasarkan kemiripan. |
|
Dua jenis indeks vektor berbasis ANN yang umum untuk AlloyDB Omni adalah ScaNN dan HNSW. Gunakan panduan berikut untuk memutuskan jenis indeks mana yang paling sesuai untuk kasus penggunaan Anda:
| Jenis Indeks | Waktu Penggunaan | Manfaat | Akselerasi Columnar Engine |
| ScaNN |
Biasanya cocok untuk data berdimensi rendah atau set data besar yang melebihi memori. Dapat diskalakan dengan baik hingga 10 miliar vektor. |
Menawarkan beberapa manfaat dibandingkan HNSW di PostgreSQL standar:
|
Penelusuran vektor dengan indeks ScaNN dapat dipercepat oleh columnar engine AlloyDB Omni. Untuk mengetahui informasi selengkapnya, lihat Mempercepat penelusuran vektor dengan columnar engine. |
| HNSW |
Biasanya cocok untuk data berdimensi lebih tinggi yang sebagian besar sesuai dengan cache dalam memori. Dapat diskalakan dengan baik hingga 10-20 juta vektor. |
Indeks HNSW yang dipercepat columnar engine pgvector di AlloyDB Omni menawarkan kueri vektor hingga 4 kali lebih cepat daripada PostgreSQL standar | Penelusuran vektor dengan indeks HNSW dapat dipercepat oleh columnar engine AlloyDB Omni. Untuk mengetahui informasi selengkapnya, lihat Mempercepat penelusuran vektor dengan columnar engine. |
Google merekomendasikan agar Anda membuat indeks vektor untuk mengoptimalkan performa pada kueri penelusuran vektor. Untuk mengetahui informasi selengkapnya tentang cara indeks ANN digunakan untuk penelusuran kemiripan, lihat Membuat indeks menggunakan ScaNN.
Untuk mempercepat penelusuran KNN terfilter, gunakan columnar engine.
Langkah berikutnya
- Membuat indeks dan vektor kueri menggunakan ScaNN
- Membuat indeks menggunakan HNSW
- Menyesuaikan performa kueri vektor