ASAL AI

Vector Database: Lemari Pencari Makna

Mencari 5 chunk paling mirip di antara 10 juta vektor dalam milidetik — itu pekerjaan vector database, fondasi siapa pun yang serius membangun RAG.

LEVEL 02± 5 menit baca

Kalau dokumenmu cuma 50 potongan, kamu bisa bandingkan pertanyaan ke semua chunk dengan loop biasa. Tapi di 1 juta chunk? Bandingkan satu per satu = terlalu lambat.

Vector database menyelesaikan ini dengan approximate nearest neighbor (ANN) — struktur indeks khusus yang menukar sedikit ketelitian dengan kecepatan ribuan kali lipat. Hasilnya: "5 vektor paling mirip dengan pertanyaan ini" dalam milidetik, di jutaan data.

Cara kerja intuisinya

Teknik populer bernama HNSW: bayangkan peta dengan jaringan jalan bertingkat. Titik-titik yang mirip saling terhubung; pencarian melompat dari tetangga ke tetangga yang makin dekat dengan target — tanpa pernah menyusuri seluruh peta.

Yang kamu tukar: kadang ia melewatkan tetangga terdekat yang sebenarnya (makanya namanya approximate). Di praktik RAG, recall 95%+ sudah lebih dari cukup — sisa 5% jarang mengubah kualitas jawaban.

Pilihan di ekosistem

  • pgvector — ekstensi di PostgreSQL. Kalau datamu sudah di Postgres, mulai dari sini. Paling gampang dirawat.
  • Qdrant / Weaviate / Milvus — database vektor khusus, unggul di skala besar dan fitur pencarian lanjutan (filter metadata + vektor sekaligus).
  • Pinecone — managed, bayar per pakai, tanpa ngurus server.
  • In-memory (mis. numpy) — untuk prototipe <10 ribu vektor, loop biasa saja sudah milidetik. Jangan over-engineer.

Fitur yang sering dilupakan orang

Vector database modern bukan cuma "kumpulan vektor + cari mirip":

  • Hybrid search — gabungkan kemiripan semantik dengan pencarian kata kunci (BM25). Cocok untuk istilah teknis dan nama produk yang embedding sering salah tangkap.
  • Metadata filter — "cari hanya di dokumen tahun 2025, divisi keuangan".
  • Multi-tenant — tiap user cuma boleh menyentuh vektornya sendiri. Kritis untuk SaaS.

Praktik untuk pemula

Mulai dari yang paling sederhana yang bisa kerja: pgvector di Postgres yang sudah kamu pakai. Fokus energimu di bagian yang lebih menentukan kualitas: cara memecah chunk dan kualitas query — bukan di pilihan database-nya.

Selanjutnya: dari mencari fakta ke mengambil tindakan — AI Agent.