Recall mengukur seberapa efektif penelusuran mengambil semua item yang relevan untuk kueri tertentu. Misalnya, bayangkan Anda memiliki 100 embedding, yang masing-masing mewakili sebuah 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 perolehan 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 sesuai dengan kemiripan untuk memfasilitasi pengambilan yang lebih cepat. Akibatnya, dengan menggunakan ANN, 10 vektor yang ditampilkan dalam contoh sebelumnya mungkin bukan 10 vektor yang paling dekat jaraknya. Jika 9 dari 10 vektor yang diambil adalah yang terdekat dalam ruang dengan vektor kueri Anda, perolehan Anda adalah 90%. Untuk mengetahui informasi selengkapnya, lihat Mengukur perolehan 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 |
| K-nearest neighbors (KNN) |
Algoritma yang menemukan titik data k-nearest neighbors untuk 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, dan kolom lain yang terkait dengan kueri Anda, ke penyimpanan kolom di columnar engine. Anda dapat menambahkan kolom secara manual atau menambahkan kolom menggunakan auto-columnarization. |
|
| Approximate Nearest Neighbors (ANN) | Algoritma yang menemukan titik data yang kira-kira paling dekat. ANN membagi titik data pelanggan yang ada menjadi grup-grup kecil berdasarkan kesamaan. |
|
Dua jenis indeks vektor berbasis ANN yang umum untuk AlloyDB Omni adalah ScaNN dan HNSW. Gunakan panduan berikut untuk memutuskan jenis indeks 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. Menskalakan 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. Menskalakan dengan baik hingga 10-20 juta vektor. |
Indeks HNSW yang dipercepat columnar engine pgvector di AlloyDB Omni menawarkan kueri vektor hingga 5 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 yang difilter, gunakan columnar engine.
Langkah berikutnya
- Membuat indeks dan mengkueri vektor menggunakan ScaNN
- Membuat indeks menggunakan HNSW
- Menyesuaikan performa kueri vektor