Topik ini menjelaskan cara mengonfigurasi indeks vektor saat membuat tabel. Gunakan konfigurasi ini untuk memenuhi kebutuhan bisnis Anda terkait kinerja, biaya, dan kemampuan real-time.
Konfigurasi parameter
Pada langkah 4 pembuatan tabel, konfigurasikan Index Schema. Anda dapat mengonfigurasi bidang vektor secara detail pada langkah ini.

Dimensi vektor
Menentukan jumlah fitur dalam suatu vektor. Atur nilai ini agar sesuai persis dengan dimensi output dari model vektor Anda.
Rekomendasi:
Jaga konsistensi: Jika dimensi yang dikonfigurasi tidak sesuai dengan data vektor aktual, pembuatan indeks akan gagal.
Dampak kinerja: Dimensi yang lebih tinggi menangkap lebih banyak informasi tetapi meningkatkan penggunaan memori dan beban komputasi. Menggandakan dimensi kira-kira menggandakan penggunaan memori.
Jenis jarak
Menentukan cara menghitung kemiripan antar vektor. Pilih jenis jarak yang paling sesuai dengan karakteristik data dan skenario bisnis Anda. Pilihan ini secara langsung memengaruhi kualitas pengambilan (retrieval).
Panduan pemilihan:
Distance type
Makna skor vektor
Cosine distance
Skor berkisar antara
[-1, 1]. Skor yang lebih tinggi berarti kemiripan lebih tinggi. Skor1berarti vektor identik. Skor-1berarti vektor berlawanan arah.Inner Product Distance (InnerProduct)
Skor yang lebih tinggi berarti kemiripan lebih tinggi.
Squared Euclidean distance (SquareEuclidean)
Skor yang lebih rendah berarti kemiripan lebih tinggi. Skor
0berarti vektor identik.
Algoritma indeks vektor
Menentukan algoritma dasar yang digunakan untuk membangun indeks vektor. Setiap algoritma menyeimbangkan kecepatan pembuatan, penggunaan memori, kinerja kueri, dan tingkat recall secara berbeda.
Panduan pemilihan:
Algorithm
Description
Distance types
Data scale
Recall
Latency
RAM usage
Scenarios
FLAT
(formerly Linear)
Data scale: Hingga puluhan ribu vektor.
Description: Akurasi tinggi. Recall 100%.
InnerProduct, SquaredEuclidean, Cosine
Very small (<10k)
Tens of thousands
100% (exact)
Very slow
Very low
Benchmarking. Exact ranking for very small datasets.
HNSW
Data scale: Hingga puluhan juta vektor.
Description: Performance benchmark. Strict requirements for accuracy and latency.
InnerProduct, SquaredEuclidean, and Cosine
Medium (10M+)
Tens of millions
Very high
Low
Very high
High-performance in-memory online search.
HNSW_RaBitQ
Vector scale: Supports data volumes of up to one billion vectors.
Description: Optimized for massive datasets under strict memory constraints. Lower accuracy requirements.
SquaredEuclidean
Medium to large (100M+)
Hundreds of millions
High
Very low
Very low
Lightweight search optimized for binary quantization.
CagraHNSW
Data scale: Up to hundreds of millions of vectors.
Description: GPU-accelerated graph indexing. Best with multiple GPUs for large-scale workloads.
InnerProduct, SquaredEuclidean
Medium to large (100M+)
Hundreds of millions
Very high
Very low (GPU)
Very high
GPU acceleration. Extremely high throughput.
HNSW_SQ
(formerly QGraph)
Data scale: Up to billions of vectors.
Description: High query speed and performance. Lower accuracy requirements.
InnerProduct, SquaredEuclidean, Cosine
Medium (100M+)
Billions
High
Low
High
IVF_SQ8
Data scale: Up to hundreds of millions of vectors.
Description: Balanced trade-off. Moderate requirements for both accuracy and latency.
InnerProduct, SquaredEuclidean, and Cosine
Large scale
500 million
Medium to high
Middle
Low
Cold-hot tiered storage for budget-constrained, large-scale workloads. Reduces memory usage by compressing vectors. A classic balance of cost and scale.
DiskANN
Data scale: Billions of vectors or more.
Description: Uses local disks. Tolerates higher latency and uses minimal memory.
InnerProduct, SquaredEuclidean, or Cosine
Massive (Billion+)
Billions or more
High
Medium to high
Very low
Disk-resident, ultra-large-scale search.
Real-time indexing
Mengaktifkan pengindeksan dan kueri segera terhadap data inkremental yang ditulis melalui API. Data menjadi terlihat dalam hitungan detik.
Cara kerja: Sistem pertama-tama membangun indeks sementara di memori untuk penulisan real-time. Ketika cukup banyak data terkumpul, indeks tersebut digabungkan dengan indeks lengkap berbasis disk.
Rekomendasi:
Aktifkan (
true): Gunakan untuk layanan online di mana data harus segera dapat dicari. Ini menggunakan sumber daya memori dan CPU tambahan.Nonaktifkan (
false): Gunakan untuk impor batch atau analitik offline di mana pembaruan jarang dilakukan.
Konfigurasi lanjutan
Ambang batas untuk pembuatan linear
Jika jumlah dokumen dalam satu shard kurang dari ambang batas ini, sistem menggunakan
Linear(pemindaian brute-force) untuk pencarian—meskipun Anda memilih algoritma indeks vektor lainnya.Rekomendasi:
Default:
5000. Ini adalah nilai empiris. Pada skala ini, pencarian brute-force sering kali berkinerja setara atau bahkan lebih baik daripada membangun indeks kompleks.Sesuaikan hanya jika diperlukan: Biasanya, biarkan nilai ini tidak berubah. Jika konkurensi kueri Anda sangat tinggi dan volume data Anda mendekati ambang batas ini, turunkan nilainya untuk memaksa penggunaan indeks berkinerja tinggi seperti
HNSW. Perlu diperhatikan bahwa hal ini dapat meningkatkan overhead pembuatan indeks.
Abaikan data vektor yang tidak valid
Mengontrol cara sistem menangani vektor abnormal—seperti dimensi yang tidak sesuai atau nilai kosong—selama pembuatan indeks penuh maupun inkremental.
Rekomendasi:
Option
Behavior
Recommended scenario
trueMelewatkan baris yang berisi vektor tidak valid. Pembuatan indeks dilanjutkan. Peringatan muncul di log.
Lingkungan pengembangan dan pengujian. Membantu debugging cepat tanpa membiarkan beberapa catatan kotor menghentikan seluruh pekerjaan.
falseMenghentikan pembuatan indeks dan mengembalikan error jika terdapat vektor tidak valid.
Lingkungan produksi. Menjamin kualitas data dan mencegah kehilangan data diam-diam. Gunakan bersama alur kerja pembersihan data hulu.
Parameter real-time indexing
Menyetel cara aliran data real-time diproses setelah real-time indexing diaktifkan.
Contoh:
{"proxima.oswg.streamer.segment_size":2048}Penjelasan: Parameter
proxima.oswg.streamer.segment_sizemengontrol jumlah catatan yang dikumpulkan di memori sebelum disimpan ke segmen kecil di memori (Segment).Rekomendasi penyetelan:
Write QPS tinggi: Tingkatkan nilai ini (misalnya, menjadi
4096) untuk mengurangi jumlah segmen di memori dan menurunkan overhead manajemen indeks. Hal ini sedikit meningkatkan penundaan antara penulisan dan ketersediaan untuk kueri.Write QPS rendah: Pertahankan nilai default
2048, atau turunkan sedikit, agar data yang baru ditulis lebih cepat tersedia untuk kueri.
Parameter pengambilan real-time
Menyesuaikan perilaku pencarian secara dinamis per algoritma indeks untuk menyeimbangkan recall dan latensi. Kunci dan nilai bergantung pada algoritma indeks vektor yang dipilih.
Catatan umum: Parameter ini biasanya mengontrol cakupan pencarian. Misalnya, pada
HNSW, parameterefmenentukan jumlah node tetangga yang dilalui selama pencarian. Nilaiefyang lebih besar meningkatkan recall tetapi juga meningkatkan latensi.Contoh (HNSW):
{"searcher_name":"HNSW", "ef":200}Nilai
efbiasanya berkisar antarak(jumlah hasil top-K yang diminta) hingga4096. Mulailah pengujian dari100dan sesuaikan berdasarkan kebutuhan recall dan latensi Anda.
Pemisah vektor
Menentukan pembatas antar dimensi vektor dalam data vektor berformat string.
Contoh: Dalam
1.05,0.15,0.14, pembatasnya adalah koma (,). Ini adalah nilai default. Anda jarang perlu mengubahnya.