Kemunculan LLM dan pencarian semantik telah mengubah secara mendasar cara kita membangun sistem pencarian, rekomendasi, dan pengambilan data. Pencarian berbasis kata kunci tradisional—baik melalui SQL LIKE, indeks terbalik Lucene, atau indeks teks penuh—semakin tidak memadai ketika pengguna mengharapkan pemahaman bahasa alami.
Di sinilah embedding dan database vektor berperan.
MongoDB berkembang pesat di ranah ini dengan Atlas Vector Search, memberi developer satu basis data untuk dokumen + metadata + vektor—semuanya dalam satu API. Dalam panduan ini, kita akan membahas:
Apa itu MongoDB.
Apa itu query embedding dan mengapa penting.
Kapan Anda sebaiknya menggunakan embedding.
Cara menyimpan embedding di MongoDB.
Cara membuat dan melakukan query dengan Python.
Tutorial ini bersifat praktis dan siap diintegrasikan ke dalam retrieval-augmented generation (RAG), pencarian kemiripan, atau pipeline rekomendasi Anda.
Apa itu MongoDB?
MongoDB adalah basis data NoSQL berorientasi dokumen yang menyimpan data dalam dokumen BSON yang fleksibel—BSON adalah JavaScript Object Notation (JSON) yang dikodekan biner—notasi objek tekstual yang banyak digunakan untuk mentransmisikan dan menyimpan data di aplikasi berbasis web. Tidak seperti basis data relasional yang kaku, MongoDB membuat evolusi skema menjadi sederhana dan menyediakan:
Skalabilitas horizontal (sharding).
Kerangka agregasi yang kaya.
Pencarian teks penuh.
Pencarian vektor.
Koleksi runtun waktu.
Fleksibilitas skema.
MongoDB Atlas—layanan cloud terkelola sepenuhnya—memperluas ini dengan:
Atlas Search (dibangun di atas Lucene).
Atlas Vector Search (pencarian semantik melalui pengindeksan HNSW).
Skalasi otomatis, pencadangan, keamanan, dan pemantauan.
MongoDB menjadi pilihan kuat untuk beban kerja AI karena vektor sering hidup berdampingan dengan metadata, dan MongoDB Atlas menggabungkan semuanya dalam satu sistem.
Apa Itu Embedding dan Mengapa Kita Menggunakan Query Embedding?
Saat Anda bekerja dengan pencarian atau pengambilan data dalam aplikasi AI, salah satu konsep pertama yang akan Anda temui adalah embedding.
Embedding pada dasarnya adalah representasi numerik, daftar panjang nilai floating-point, yang menangkap makna suatu potongan teks (atau gambar, audio, dll.). Alih-alih melihat kata-kata persisnya, embedding memetakan teks ke ruang vektor di mana ide-ide serupa berakhir berdekatan. Misalnya, pertimbangkan tiga pernyataan pengguna berbeda:
Masalah penagihan
Kesalahan pembayaran
Gaji belum masuk
Walaupun katanya berbeda, ketiganya menggambarkan masalah finansial. Model embedding yang baik menempatkan teks-teks ini berdekatan di ruang vektor, sehingga Anda bisa mengambilnya berdasarkan makna, bukan kata kunci.
Hal ini menjadi sangat penting ketika pengguna melakukan pencarian. Teks yang mereka ketik—“Mengapa gaji saya terlambat?”—juga diubah menjadi embedding. Vektor baru ini disebut query embedding. Anda kemudian membandingkan vektor kueri ini dengan semua embedding yang tersimpan untuk menemukan dokumen yang secara semantik serupa. Semakin dekat vektornya, semakin relevan hasilnya.
MongoDB Atlas membuat seluruh alur kerja ini sangat mudah dengan Atlas Vector Search. Setelah menyimpan dokumen dan embedding-nya dalam koleksi MongoDB, Atlas membuat indeks vektor (menggunakan HNSW di balik layar) yang dapat dengan cepat mengambil dokumen serupa dalam skala besar. Misalnya, jika Anda menyimpan artikel bantuan beserta embedding-nya, kueri seperti…
query ="Why isn't my salary showing up this month?"
query_vec = get_embedding(query)# Explained in below examplesDidukung oleh
…dapat digunakan langsung di MongoDB:
results = collection.aggregate([{"$vectorSearch":{"path":"embedding","queryVector": query_vec,"index":"vector_index","limit":3}}])Didukung oleh
MongoDB akan otomatis mengembalikan 3 artikel bantuan teratas yang embedding-nya paling dekat dengan kueri—tanpa perlu pencocokan kata kunci atau penskoran manual.
Inilah kekuatan embedding di MongoDB Atlas: Anda menyimpan makna, bukan sekadar teks, dan Anda melakukan query berdasarkan niat, bukan hanya kata. Pergeseran ini menjadi alasan embedding menjadi blok bangunan inti untuk pencarian semantik, sistem RAG, asisten AI, dan basis pengetahuan cerdas.
Kapan Menggunakan Query Embedding
Gunakan embedding ketika Anda menginginkan kemiripan semantik, seperti:
Retrieval-augmented generation (RAG)
Memberi LLM Anda konteks yang akurat dari basis pengetahuan Anda
Menggantikan pencarian kata kunci yang rapuh
Chatbot yang memerlukan pemahaman mendalam
Portal helpdesk
Dukungan pelanggan
Rekomendasi produk
“item serupa dengan item ini”
Deteksi dokumen atau duplikat
Clustering
Pengelompokan topik
Saat pencarian kata kunci gagal
Kueri seperti “keterlambatan masuk gaji” vs. “masalah pemrosesan pembayaran”
Jangan gunakan embedding ketika:
Anda memerlukan kecocokan persis (ID, nomor invoice).
Dataset Anda sangat kecil (pencarian sederhana sudah cukup).
Anda butuh penyaringan/perbandingan numerik (itu ditangani oleh metadata).
Cara Menyimpan Embedding di MongoDB
Keunggulan MongoDB adalah embedding secara alami pas di dalam dokumen. Anda cukup menyimpannya sebagai array float.
Contoh skema dokumen
Berikut struktur dokumen yang umum:
{"_id":"uuid-123","text":"This is a sample document about MongoDB vector search.","embedding":[0.123,-0.241,0.998, ...],"tags":["mongodb","vector","ai"],"createdAt":"2025-01-01T10:20:00Z"}Didukung oleh
Hal-hal penting yang perlu diingat:
Setiap embedding dalam satu koleksi harus memiliki dimensionalitas yang sama.
Embedding idealnya disimpan sebagai float32 (MongoDB secara internal mengonversi ke float64).
Jika dokumen Anda panjang, potong menjadi chunk sebelum membuat embedding.
Simpan metadata secara terpisah—tag, kategori, URL, stempel waktu, dll. Ini membuat pencarian hibrida menjadi kuat.
Membuat Indeks Vektor di MongoDB (Langkah Kritis)
Sebelum menyimpan atau melakukan query embedding, Anda harus membuat indeks pencarian vektor di MongoDB Atlas.
Di MongoDB Atlas, buka:Atlas → Database → Collections → Search → Create Search Index
Gunakan definisi seperti:
{"fields":[{"type":"vector","path":"embedding","numDimensions":1536,"similarity":"cosine"}]}Didukung oleh
Ini memberi tahu MongoDB:
Field embedding berisi vektor.
Setiap vektor memiliki 1536 dimensi.
Gunakan cosine similarity untuk perankingan.
Indeks ini menjalankan semua kueri pencarian vektor.
MongoDB menyertakan kemampuan pencarian vektor native dengan dukungan untuk:
Cosine similarity.
Jarak Euclidean.
Skor dotProduct.
Pilih berdasarkan model embedding Anda—tetapi bagaimana kita tahu harus memilih yang mana? Mari kita bahas lebih dalam.
Cosine similarity
Apa yang diukur
Kesejajaran dua vektor—yakni sudut di antara keduanya. Mengabaikan magnitudo dan hanya fokus pada arah.
Intuisi
Jika dua vektor mengarah sama → kemiripan mendekati 1
Arah berlawanan → –1
Ortogonal (tidak terkait) → 0
Kapan digunakan
Gunakan cosine ketika magnitudo tidak penting, hanya pola atau konsep yang diekspresikan.
Penggunaan umum
Embedding teks/NLP
Pencarian semantik
Sistem rekomendasi berbasis makna, bukan skala
Cosine adalah default teraman untuk sebagian besar model embedding.
Jarak Euclidean
Apa yang diukur
Mengukur jarak garis lurus antara dua vektor dalam ruang.
Intuisi
Jarak kecil → vektor serupa
Jarak besar → vektor berjauhan
Kapan digunakan
Gunakan Euclidean ketika nilai absolut dan magnitudo penting, bukan hanya arah.
Penggunaan umum
Embedding gambar
Pengukuran fisik/data sensor
Algoritme clustering seperti K-means (yang secara internal menggunakan Euclidean)
Jika data Anda secara alami berada dalam ruang geometris (misalnya intensitas piksel), Euclidean sering lebih masuk akal.
Dot product
Apa yang diukur
Mengukur kombinasi kemiripan dan magnitudo.
Secara matematis: dot(u, v) = |u| × |v| × cos(θ)
Intuisi
Magnitudo LEBIH BESAR DAN selaras → skor lebih besar
Sensitif terhadap panjang vektor
Tidak ternormalisasi secara otomatis
Kapan digunakan
Gunakan dot product ketika Anda ingin vektor yang lebih panjang memiliki pengaruh lebih besar atau ketika model embedding dilatih dengan mempertimbangkan dot product.
Penggunaan umum
Embedding model bahasa besar yang mengasumsikan penilaian inner productscoring
Lapisan kemiripan jaringan saraf
Model rekomendasi di mana “kekuatan” fitur bermakna
Aturan praktis cepat
Metrik
Cocok untuk
Hindari ketika
Cosine
Teks, pencarian semantik, embedding umum
Magnitudo penting
Euclidean
Gambar, fitur geometris, clustering
Data memiliki penskalaan sewenang-wenang
Dot product
Model yang dilatih dengan inner product, recsys
Magnitudo mendistorsi kemiripan
Membuat, Menyimpan, dan Melakukan Query Embedding di MongoDB (Tutorial Python)
Mari kita jalani langkahnya seolah-olah kita sedang membangun sistem nyata.
Menggunakan OpenAI (ganti dengan penyedia embedding apa pun yang Anda pilih):
import os
from openai import OpenAI
os.environ["OPENAI_API_KEY"]="your_api_key_here"
client = OpenAI()defget_embedding(text:str):
response = client.embeddings.create(
model="text-embedding-3-small",input=text
)return response.data[0].embeddingDidukung oleh
Sambungkan ke MongoDB dan masukkan dokumen
Menggunakan OpenAI (ganti dengan penyedia embedding apa pun yang Anda pilih):
from pymongo import MongoClient
import uuid
mongo = MongoClient("<MONGODB_ATLAS_URI>")
db = mongo["vector_db"]
collection = db["documents"]
text ="This is a sample document about MongoDB vector search."
embedding = get_embedding(text)
document ={"_id":str(uuid.uuid4()),"text": text,"embedding": embedding,"tags":["mongodb","search"],}
collection.insert_one(document)print("Document inserted successfully!")Didukung oleh
Pada titik ini, data Anda siap untuk pencarian semantik.
Melakukan query embedding di MongoDB
Sekarang bagian menariknya: mengambil dokumen serupa menggunakan kueri vektor. MongoDB menggunakan $vectorSearch dalam pipeline agregasi.
Buat vektor kueri
from pymongo import MongoClient
query ="How does MongoDB handle semantic search?"
query_vec = get_embedding(query)Didukung oleh
Lakukan pencarian vektor (query embedding)
results = collection.aggregate([{"$vectorSearch":{"index":"vector_index","path":"embedding","queryVector": query_vec,"numCandidates":100,"limit":5,"similarity":"cosine"}},{"$project":{"text":1,"score":{"$meta":"vectorSearchScore"}}}])for r in results:print(r)Didukung oleh
Ini mengembalikan lima dokumen yang paling mirip secara semantik.
Ini sangat berguna untuk pipeline RAG di mana Anda menginginkan pencarian semantik.
Penjelasan langkah demi langkah dari kueri di atas
$vectorSearch → Menemukan dokumen yang field embedding-nya paling dekat dengan queryVector menggunakan metrik kemiripan yang ditentukan
numCandidates → Berapa banyak kandidat potensial yang sebaiknya dipertimbangkan mesin sebelum memilih hasil teratas
limit → Jumlah hasil akhir yang serupa untuk dikembalikan
$project → Mengembalikan teks asli plus field khusus bernama score
Apa itu field score?
MongoDB Atlas Vector Search mengembalikan field metadata khusus,"score": {"$meta": "vectorSearchScore"}, yang memberi tahu Anda seberapa mirip vektor tersimpan dengan vektor kueri Anda.
Makna skor bergantung pada metrik kemiripan yang Anda pilih, seperti dijelaskan di bawah ini:
Metrik kemiripan
Makna skor
Skor lebih tinggi = lebih mirip?
Kisaran skor
cosine
Kemiripan sudut antar vektor
Ya
–1 hingga +1
euclidean
Jarak L2 negatif
Tidak—semakin dekat ke 0 = lebih mirip
–∞ hingga 0
dotProduct
Kesejajaran magnitudo vektor
Ya
–∞ hingga +∞
Praktik Terbaik
Potong dokumen panjang (300–500 token per chunk): Relevansi lebih baik + menghindari embedding blob panjang
Simpan metadata terpisah: Membantu penyaringan dan perankingan
Batch pembuatan embedding: Meningkatkan throughput dan menurunkan biaya model
Gunakan embedding float32 di model Anda: MongoDB secara internal menggunakan float64 tetapi menerima array float32
Indeks hanya field vektor: Field tambahan dalam indeks meningkatkan memori dan latensi
Kesalahan Umum yang Perlu Dihindari
Masalah
Mengapa terjadi
Dimensi tidak cocok
Dim vektor kueri ≠ dim indeks
Hasil tidak relevan
Menggunakan model berbeda untuk penyimpanan vs kueri
Pencarian lambat
numCandidates terlalu banyak atau kebutuhan klaster besar
Dokumen terlalu besar
Batas dokumen 16MB
Metrik kemiripan salah
Model dilatih untuk cosine tetapi menggunakan dot product
Penutup
Embedding dan pencarian semantik kini menjadi fondasi bagi produk AI modern. Baik Anda membangun chatbot, pipeline RAG, mesin rekomendasi, atau lapisan pencarian cerdas, Anda memerlukan cara andal untuk menyimpan vektor dan melakukan query secara efisien.
MongoDB memberi Anda platform terpadu di mana:
Teks Anda tersimpan.
Metadata Anda tersimpan.
Embedding Anda tersimpan.
Pencarian vektor Anda berjalan.
Semuanya diskalakan bersama.
Ini menghindari kompleksitas mengelola basis data terpisah dan memungkinkan Anda fokus membangun kapabilitas produk, bukan infrastruktur.
FAQs
Apakah saya memerlukan basis data vektor terpisah jika menggunakan MongoDB untuk embedding?⌄
Tidak. MongoDB Atlas Vector Search sudah tersemat, sehingga Anda dapat menyimpan dokumen, metadata, dan vektor di tempat yang sama tanpa menggunakan basis data vektor terpisah seperti Pinecone atau Milvus.
Dimensionalitas embedding apa yang harus saya gunakan di MongoDB?⌄
Gunakan dimensionalitas yang disediakan oleh model embedding Anda (misalnya, 768 atau 1536). Semua dokumen dalam satu koleksi harus menggunakan dimensi yang sama dengan indeks vektor.
Dapatkah MongoDB melakukan pencarian hibrida (metadata + pencarian vektor)?⌄
Anda dapat melakukan penyaringan dengan $match lalu menerapkan $vectorSearch dalam pipeline agregasi yang sama—ideal untuk RAG dan sistem rekomendasi.
Apakah MongoDB cocok untuk beban kerja pencarian vektor skala besar?⌄
Ya. MongoDB menggunakan pengindeksan berbasis HNSW di Atlas Search, yang dapat diskalakan dengan baik untuk jutaan dokumen. Throughput bergantung pada ukuran indeks, tier klaster, dan pola beban kerja.
Bisakah saya menggunakan model embedding apa pun dengan MongoDB?⌄
Tentu. MongoDB bersifat model-agnostik. Anda dapat menggunakan OpenAI, HuggingFace, Cohere, model lokal, atau embedding kustom—asalkan dimensinya cocok dengan indeks.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kemunculan LLM dan pencarian semantik telah mengubah secara mendasar cara kita membangun sistem pencarian, rekomendasi, dan pengambilan data. Pencarian berbasis kata kunci tradisional—baik melalui SQL LIKE, indeks terbalik Lucene, atau indeks teks penuh—semakin tidak memadai ketika pengguna mengharapkan pemahaman bahasa alami.
Di sinilah embedding dan database vektor berperan.
MongoDB berkembang pesat di ranah ini dengan Atlas Vector Search, memberi developer satu basis data untuk dokumen + metadata + vektor—semuanya dalam satu API. Dalam panduan ini, kita akan membahas:
Tutorial ini bersifat praktis dan siap diintegrasikan ke dalam retrieval-augmented generation (RAG), pencarian kemiripan, atau pipeline rekomendasi Anda.
Apa itu MongoDB?
MongoDB adalah basis data NoSQL berorientasi dokumen yang menyimpan data dalam dokumen BSON yang fleksibel—BSON adalah JavaScript Object Notation (JSON) yang dikodekan biner—notasi objek tekstual yang banyak digunakan untuk mentransmisikan dan menyimpan data di aplikasi berbasis web. Tidak seperti basis data relasional yang kaku, MongoDB membuat evolusi skema menjadi sederhana dan menyediakan:
MongoDB Atlas—layanan cloud terkelola sepenuhnya—memperluas ini dengan:
MongoDB menjadi pilihan kuat untuk beban kerja AI karena vektor sering hidup berdampingan dengan metadata, dan MongoDB Atlas menggabungkan semuanya dalam satu sistem.
Apa Itu Embedding dan Mengapa Kita Menggunakan Query Embedding?
Saat Anda bekerja dengan pencarian atau pengambilan data dalam aplikasi AI, salah satu konsep pertama yang akan Anda temui adalah embedding.
Embedding pada dasarnya adalah representasi numerik, daftar panjang nilai floating-point, yang menangkap makna suatu potongan teks (atau gambar, audio, dll.). Alih-alih melihat kata-kata persisnya, embedding memetakan teks ke ruang vektor di mana ide-ide serupa berakhir berdekatan. Misalnya, pertimbangkan tiga pernyataan pengguna berbeda:
Walaupun katanya berbeda, ketiganya menggambarkan masalah finansial. Model embedding yang baik menempatkan teks-teks ini berdekatan di ruang vektor, sehingga Anda bisa mengambilnya berdasarkan makna, bukan kata kunci.
Hal ini menjadi sangat penting ketika pengguna melakukan pencarian. Teks yang mereka ketik—“Mengapa gaji saya terlambat?”—juga diubah menjadi embedding. Vektor baru ini disebut query embedding. Anda kemudian membandingkan vektor kueri ini dengan semua embedding yang tersimpan untuk menemukan dokumen yang secara semantik serupa. Semakin dekat vektornya, semakin relevan hasilnya.
MongoDB Atlas membuat seluruh alur kerja ini sangat mudah dengan Atlas Vector Search. Setelah menyimpan dokumen dan embedding-nya dalam koleksi MongoDB, Atlas membuat indeks vektor (menggunakan HNSW di balik layar) yang dapat dengan cepat mengambil dokumen serupa dalam skala besar. Misalnya, jika Anda menyimpan artikel bantuan beserta embedding-nya, kueri seperti…
…dapat digunakan langsung di MongoDB:
MongoDB akan otomatis mengembalikan 3 artikel bantuan teratas yang embedding-nya paling dekat dengan kueri—tanpa perlu pencocokan kata kunci atau penskoran manual.
Inilah kekuatan embedding di MongoDB Atlas: Anda menyimpan makna, bukan sekadar teks, dan Anda melakukan query berdasarkan niat, bukan hanya kata. Pergeseran ini menjadi alasan embedding menjadi blok bangunan inti untuk pencarian semantik, sistem RAG, asisten AI, dan basis pengetahuan cerdas.
Kapan Menggunakan Query Embedding
Gunakan embedding ketika Anda menginginkan kemiripan semantik, seperti:
Retrieval-augmented generation (RAG)
Chatbot yang memerlukan pemahaman mendalam
Rekomendasi produk
Deteksi dokumen atau duplikat
Saat pencarian kata kunci gagal
Jangan gunakan embedding ketika:
Cara Menyimpan Embedding di MongoDB
Keunggulan MongoDB adalah embedding secara alami pas di dalam dokumen. Anda cukup menyimpannya sebagai array float.
Contoh skema dokumen
Berikut struktur dokumen yang umum:
Hal-hal penting yang perlu diingat:
Membuat Indeks Vektor di MongoDB (Langkah Kritis)
Sebelum menyimpan atau melakukan query embedding, Anda harus membuat indeks pencarian vektor di MongoDB Atlas.
Di MongoDB Atlas, buka: Atlas → Database → Collections → Search → Create Search Index
Gunakan definisi seperti:
Ini memberi tahu MongoDB:
Indeks ini menjalankan semua kueri pencarian vektor.
MongoDB menyertakan kemampuan pencarian vektor native dengan dukungan untuk:
Pilih berdasarkan model embedding Anda—tetapi bagaimana kita tahu harus memilih yang mana? Mari kita bahas lebih dalam.
Cosine similarity
Apa yang diukur
Kesejajaran dua vektor—yakni sudut di antara keduanya. Mengabaikan magnitudo dan hanya fokus pada arah.
Intuisi
Kapan digunakan
Gunakan cosine ketika magnitudo tidak penting, hanya pola atau konsep yang diekspresikan.
Penggunaan umum
Cosine adalah default teraman untuk sebagian besar model embedding.
Jarak Euclidean
Apa yang diukur
Mengukur jarak garis lurus antara dua vektor dalam ruang.
Intuisi
Kapan digunakan
Gunakan Euclidean ketika nilai absolut dan magnitudo penting, bukan hanya arah.
Penggunaan umum
Jika data Anda secara alami berada dalam ruang geometris (misalnya intensitas piksel), Euclidean sering lebih masuk akal.
Dot product
Apa yang diukur
Mengukur kombinasi kemiripan dan magnitudo.
Secara matematis: dot(u, v) = |u| × |v| × cos(θ)
Intuisi
Kapan digunakan
Gunakan dot product ketika Anda ingin vektor yang lebih panjang memiliki pengaruh lebih besar atau ketika model embedding dilatih dengan mempertimbangkan dot product.
Penggunaan umum
Aturan praktis cepat
Metrik
Cocok untuk
Hindari ketika
Cosine
Teks, pencarian semantik, embedding umum
Magnitudo penting
Euclidean
Gambar, fitur geometris, clustering
Data memiliki penskalaan sewenang-wenang
Dot product
Model yang dilatih dengan inner product, recsys
Magnitudo mendistorsi kemiripan
Membuat, Menyimpan, dan Melakukan Query Embedding di MongoDB (Tutorial Python)
Mari kita jalani langkahnya seolah-olah kita sedang membangun sistem nyata.
Instal dependensi
Buat embedding
Menggunakan OpenAI (ganti dengan penyedia embedding apa pun yang Anda pilih):
Sambungkan ke MongoDB dan masukkan dokumen
Menggunakan OpenAI (ganti dengan penyedia embedding apa pun yang Anda pilih):
Pada titik ini, data Anda siap untuk pencarian semantik.
Melakukan query embedding di MongoDB
Sekarang bagian menariknya: mengambil dokumen serupa menggunakan kueri vektor. MongoDB menggunakan $vectorSearch dalam pipeline agregasi.
Buat vektor kueri
Lakukan pencarian vektor (query embedding)
Ini mengembalikan lima dokumen yang paling mirip secara semantik.
Ini sangat berguna untuk pipeline RAG di mana Anda menginginkan pencarian semantik.
Penjelasan langkah demi langkah dari kueri di atas
$vectorSearch → Menemukan dokumen yang field embedding-nya paling dekat dengan queryVector menggunakan metrik kemiripan yang ditentukan
numCandidates → Berapa banyak kandidat potensial yang sebaiknya dipertimbangkan mesin sebelum memilih hasil teratas
limit → Jumlah hasil akhir yang serupa untuk dikembalikan
$project → Mengembalikan teks asli plus field khusus bernama score
Apa itu field score?
MongoDB Atlas Vector Search mengembalikan field metadata khusus, "score": {"$meta": "vectorSearchScore"}, yang memberi tahu Anda seberapa mirip vektor tersimpan dengan vektor kueri Anda.
Makna skor bergantung pada metrik kemiripan yang Anda pilih, seperti dijelaskan di bawah ini:
Metrik kemiripan
Makna skor
Skor lebih tinggi = lebih mirip?
Kisaran skor
cosine
Kemiripan sudut antar vektor
Ya
–1 hingga +1
euclidean
Jarak L2 negatif
Tidak—semakin dekat ke 0 = lebih mirip
–∞ hingga 0
dotProduct
Kesejajaran magnitudo vektor
Ya
–∞ hingga +∞
Praktik Terbaik
Kesalahan Umum yang Perlu Dihindari
Masalah
Mengapa terjadi
Dimensi tidak cocok
Dim vektor kueri ≠ dim indeks
Hasil tidak relevan
Menggunakan model berbeda untuk penyimpanan vs kueri
Pencarian lambat
numCandidates terlalu banyak atau kebutuhan klaster besar
Dokumen terlalu besar
Batas dokumen 16MB
Metrik kemiripan salah
Model dilatih untuk cosine tetapi menggunakan dot product
Penutup
Embedding dan pencarian semantik kini menjadi fondasi bagi produk AI modern. Baik Anda membangun chatbot, pipeline RAG, mesin rekomendasi, atau lapisan pencarian cerdas, Anda memerlukan cara andal untuk menyimpan vektor dan melakukan query secara efisien.
MongoDB memberi Anda platform terpadu di mana:
Ini menghindari kompleksitas mengelola basis data terpisah dan memungkinkan Anda fokus membangun kapabilitas produk, bukan infrastruktur.