Apa itu vector database?

Jawaban singkat

Vector database adalah basis data yang dibuat untuk menyimpan embedding, yaitu deretan angka yang dihasilkan model AI untuk mewakili makna, dan mengembalikan item tersimpan yang paling dekat dengan sebuah kueri dalam hitungan milidetik. Ini adalah langkah pencarian dalam chat dengan dokumen Anda dan pencarian semantik. Anda membutuhkannya ketika teksnya terlalu besar untuk dikirim utuh ke model.

Vector database menjawab satu pertanyaan, sangat cepat

Berikan deretan angka dan ia akan mengembalikan deretan tersimpan yang paling dekat dengannya. Itulah seluruh antarmukanya.

Deretan angka itu adalah embedding. Model embedding mengubah sebuah bagian teks, deskripsi produk atau gambar menjadi beberapa ratus hingga ribuan angka, ditempatkan sedemikian rupa sehingga makna yang mirip berada berdekatan, dan apa itu embedding dalam AI membahas caranya. Vector database adalah tempat deretan angka itu disimpan setelah jumlahnya banyak. Ia menyimpan setiap deretan beserta ID dan metadatanya, membangun indeks di atasnya, dan menjawab pencarian tetangga terdekat: "ini vektor kueri, berikan sepuluh yang paling dekat."

Bagian tersulitnya adalah kata cepat. Membandingkan satu kueri terhadap satu juta vektor tersimpan yang masing-masing berisi 1.536 angka berarti 1,5 miliar perkalian, dan melakukannya pada setiap ketukan tombol tidak bisa diskalakan. Karena itu vector database menggunakan indeks pencarian tetangga terdekat aproksimasi, yang paling umum adalah HNSW, sebuah struktur graf dari makalah tahun 2016 oleh Malkov dan Yashunin yang hanya memeriksa beberapa ratus kandidat, bukan sejuta, dan hampir selalu mengembalikan jawaban yang tepat. Kata "hampir" itulah kompromi yang diambil: sedikit recall demi kecepatan seribu kali lipat.

Database Anda yang sekarang mencocokkan kata; vector database mencocokkan makna

Database relasional mencari baris yang nilainya cocok: WHERE customer_id = 4127. Indeks full-text mencari dokumen yang mengandung kata: refund AND policy. Vector database mencari item yang maknanya dekat: kueri "bagaimana cara mendapatkan uang saya kembali" mengembalikan bagian berjudul "Pengembalian dan refund" meskipun keduanya tidak berbagi satu kata pun.

Database relasionalPencarian full-textVector database
BertanyaBaris mana yang cocok dengan nilai ini?Dokumen mana yang mengandung kata-kata ini?Item mana yang maknanya dekat dengan ini?
IndeksB-tree pada kolomIndeks terbalik pada istilahGraf atau klaster atas vektor (HNSW, IVF)
Eksak?YaYaBiasanya aproksimasi
Unggul diID, tanggal, jumlah, joinNama, kode, frasa persisSinonim, parafrase, lintas bahasa, gambar
Lemah diMaknaMaknaString persis, penghitungan, penyaringan nilai
ContohPostgres, MySQL, SQLiteElasticsearch, LucenePinecone, Weaviate, Qdrant, Milvus, Chroma, pgvector

Baris terakhir menunjukkan betapa kaburnya kategori ini. pgvector menambahkan kolom vektor dan indeks HNSW ke Postgres biasa, dan Elasticsearch sudah membawa kolom vektor sejak versi 7.0 pada 2019 serta pencarian HNSW sejak 8.0 pada 2022. "Vector database" sering kali adalah kapabilitas di dalam database yang sudah Anda pakai, bukan produk baru, dan produk yang berdiri sendiri bersaing pada skala serta kematangan operasional, bukan pada melakukan sesuatu yang tidak bisa dilakukan Postgres.

Chat dengan dokumen Anda adalah pencarian vektor dengan model di ujungnya

Retrieval-augmented generation, yang dibahas dalam apa itu RAG, memiliki langkah pencarian dan langkah penulisan. Vector database adalah langkah pencarian itu.

  1. Pecah setiap dokumen menjadi bagian-bagian beberapa ratus hingga seribu token.
  2. Embed setiap bagian dan simpan vektornya, beserta teks bagian dan sumbernya, di vector database.
  3. Saat sebuah pertanyaan datang, embed pertanyaan itu dan minta database mencari bagian terdekat.
  4. Serahkan bagian-bagian itu ke model bahasa bersama pertanyaannya, dan biarkan model menulis jawabannya.

Langkah 1 dan 2 terjadi sekali, saat dokumen ditambahkan. Langkah 3 dan 4 terjadi pada setiap pertanyaan. Model bahasa tidak pernah melihat seluruh koleksi; ia hanya melihat lima atau sepuluh bagian yang dipilih database. Itu sebabnya jawabannya hanya sebaik pencariannya: jika vektor terdekat adalah bagian yang salah, model dengan percaya diri menjawab pertanyaan yang salah, yang oleh apa itu halusinasi AI dicatat sebagai kegagalan pencarian, bukan karangan.

Kapan Anda membutuhkannya, dan kapan mengirim seluruh berkas lebih baik

Keputusannya soal ukuran. Model hanya bisa mempertimbangkan context window-nya sekaligus, dan setiap token di dalamnya dibayar pada setiap giliran. Vector database ada untuk menaruh hanya bagian yang relevan di hadapan model. Untuk satu dokumen yang muat, pencarian ini adalah langkah yang bisa dilewati; untuk koleksi yang tidak muat, ini satu-satunya pilihan.

Bandingkan biaya kedua desain pada laporan 300.000 token, beberapa ratus halaman, ditanya sepuluh pertanyaan, dengan mengambil lima bagian 1.000 token per pertanyaan. Mengirim seluruh berkas setiap kali berarti 3 juta token input. Mengambil lima bagian 1.000 token per pertanyaan hanya 50.000 token. Pada tarif input daftar harga di indeks biaya model AI, yang diambil dari OpenRouter pada 2026-08-20, selisihnya 60 kali lipat di setiap model. Prompt caching, bila disediakan penyedia, menagih pembacaan ulang berkas yang sama dengan sepersepuluh hingga setengah dari harga daftar, yang mempersempit selisih menjadi sekitar 6 hingga 30 kali lipat. Pencarian tetap menang, meski dengan margin lebih kecil.

Sepuluh pertanyaan pada laporan 300.000 token 60 kali lebih mahal jika berkas dikirim setiap kali
bagian yang diambilseluruh berkas setiap giliran$0$5$10$15harga daftar, sepuluh pertanyaanGPT-5.6 Luna$0.01$0.6060xGemini 3.7 Flash$0.019$1.1360xClaude Sonnet 5$0.10$6.0060xClaude Opus 5$0.25$15.0060x

Desain seluruh-berkas memberi sesuatu untuk uang itu ketika berkasnya muat dalam anggaran: kontrak 60 halaman, sekitar 40.000 token, memungkinkan model menjawab pertanyaan yang membutuhkan seluruh dokumen sekaligus, seperti "apakah ada yang bertentangan dengan klausul 14 di sini", yang tidak bisa ditanyakan pencarian karena ia tidak pernah melihat klausul 14 dan kontradiksinya dalam batch yang sama. Aturan yang muncul: satu dokumen, atau segelintir, dikirim utuh; sebuah perpustakaan melewati vector database. Di antara keduanya, pecah unggahan berdasarkan topik agar model mendapat bagian yang ia butuhkan.

Whizi mengirim teksnya sendiri, hingga giliran 40.000 token

Whizi tidak menjalankan vector database untuk chat Anda. Saat Anda melampirkan berkas, jalur unggah dokumen mengekstrak teksnya dan mengirimkannya ke model sebagai teks prompt, hingga anggaran datar 40.000 token per giliran; unggahan yang lebih panjang dipotong, dengan toast dan penanda dalam pesan yang menyatakannya. Berkas proyek bekerja dengan cara yang sama: fitur proyek menyematkan hingga 10 berkas dan membangun ulang teksnya ke dalam prompt pada setiap pesan, dibatasi 32.000 karakter per berkas dan 120.000 untuk seluruh blok proyek.

Batasan itu adalah tepi dari desainnya. Berkas yang disematkan melebihi 32.000 karakter dipotong, lampiran yang melebihi anggaran giliran 40.000 token dipotong, dan proyek adalah folder, bukan perpustakaan yang bisa dicari. Kompromi ini disengaja: untuk kontrak atau makalah yang muat dalam anggaran giliran, memiliki teks yang hadir utuh lebih baik daripada dicari, dan pemeriksaan yang penting, meminta model mengutip bagian yang ia gunakan, berhasil karena bagiannya memang ada di sana. Untuk seribu dokumen, vector database adalah alat yang tepat dan aplikasi chat adalah alat yang salah.

Dua kebiasaan mengikuti dari mekanisme ini. Sebutkan nama berkas dalam pertanyaan Anda begitu ada lebih dari satu yang dilampirkan, karena model memilih secara diam-diam jika tidak. Dan pada jawaban apa pun yang akan Anda jadikan dasar tindakan, minta kutipannya. Sistem pencarian bisa mengembalikan bagian yang salah; sistem seluruh-berkas bisa menjawab dari ingatan, bukan dari berkas. Kutipan itu menangkap keduanya.

Daftar Periksa
  • Kirim satu dokumen utuh; taruh koleksi di balik vector database
  • Pecah unggahan yang panjang berdasarkan topik agar model mendapat bagian yang dibutuhkan pertanyaan
  • Minta model mengutip bagian yang ia gunakan sebelum mengandalkan jawabannya
  • Gunakan pencarian teks biasa untuk ID, kode dan frasa persis; pencarian vektor mencocokkan makna, bukan karakter
  • Perlakukan kegagalan pencarian sebagai masalah pencarian: embed ulang dengan model yang lebih baik atau bagian yang lebih kecil sebelum menyalahkan model penulis

Pertanyaan Umum

Apa itu vector database dalam istilah sederhana?

Tempat penyimpanan deretan angka yang dipakai model AI untuk mewakili makna, dibuat untuk menemukan kecocokan terdekat dengan cepat. Anda memberinya embedding dari sebuah pertanyaan dan ia mengembalikan embedding, serta teks di baliknya, yang maknanya mirip. Ini adalah separuh pencarian dari chat dengan dokumen Anda kapan pun koleksinya terlalu besar untuk dikirim utuh.

Apakah saya perlu vector database untuk memakai AI dengan dokumen saya?

Hanya jika dokumennya tidak muat dalam context window model. Satu laporan atau kontrak bisa dikirim ke model secara utuh, yang memang dilakukan Whizi dengan lampiran dan berkas proyek yang disematkan. Perpustakaan berisi ribuan dokumen membutuhkan pencarian, dan pencarian membutuhkan indeks vektor, baik dalam produk khusus maupun ekstensi Postgres seperti pgvector.

Apa bedanya vector database dengan database biasa?

Database biasa mencocokkan nilai: ID ini, tanggal ini, kata persis ini. Vector database mencocokkan makna, mengembalikan item tersimpan yang embedding-nya paling dekat dengan kueri. Biasanya aproksimasi, menggunakan indeks seperti HNSW yang memeriksa beberapa ratus kandidat, bukan setiap item, dan lemah dalam pencocokan persis yang justru dikuasai database biasa.

Vector database mana yang paling banyak dipakai?

Pinecone, Weaviate, Qdrant, Milvus dan Chroma adalah produk berdiri sendiri yang umum, dan pgvector menambahkan kapabilitas yang sama ke Postgres. Elasticsearch dan OpenSearch juga menyediakan pencarian vektor. Pilihannya biasanya soal operasional, yaitu skala dan hosting, karena semuanya menerapkan gagasan pencarian tetangga terdekat aproksimasi yang sama.

Berapa banyak penghematan pencarian dibanding mengirim seluruh berkas?

Sepuluh pertanyaan pada laporan 300.000 token memakan biaya $6.00 di Claude Sonnet 5 jika berkas dikirim pada setiap giliran dan $0.10 jika lima bagian 1.000 token diambil sebagai gantinya, pada tarif daftar OpenRouter yang diambil 2026-08-20. Di GPT-5.6 Luna, pasangan yang sama adalah $0.60 berbanding $0.01. Rasionya 60 kali lipat di setiap model karena kedua desain membayar tarif per token yang sama.