Beranda/Artikel /Tutorial
Tutorial

Cara Memakai Vector Database Qdrant untuk Pencarian Dokumen

ClovertechnoClovertechno 29 September 2026 6 menit baca

Pencarian dokumen perusahaan tidak selalu berhasil hanya dengan mencocokkan kata. Misalnya, pengguna mencari "aturan pengembalian barang", sementara dokumen perusahaan menggunakan istilah "kebijakan retur dan refund". Informasinya sama, tetapi pencarian berbasis kata kunci bisa gagal menemukannya.

Masalah tersebut dapat ditangani dengan pencarian berbasis makna menggunakan embedding dan vector database. Teks diubah menjadi representasi angka yang menggambarkan maknanya, kemudian sistem mencari potongan dokumen yang memiliki kemiripan makna dengan pertanyaan pengguna.

Salah satu database yang dirancang untuk kebutuhan tersebut adalah Qdrant, vector database open source yang dapat digunakan sebagai bagian dari pipeline Retrieval-Augmented Generation (RAG). Artikel ini membahas cara menjalankan Qdrant dengan Docker, membuat embedding menggunakan Ollama, menyimpan vektor, melakukan pencarian semantik, hingga menghubungkannya dengan workflow n8n.

Diagram arsitektur AI automation untuk operasional bisnis: chat, email, form, dan dokumen masuk ke orkestrator n8n, diproses AI agent yang ditopang knowledge base, lalu menghasilkan aksi sistem, dashboard, dan notifikasi ke tim
Arsitektur AI automation untuk operasional bisnis yang menggunakan knowledge base dan AI automation.

Apa Itu Qdrant?

Qdrant adalah vector database yang digunakan untuk menyimpan dan mencari data berdasarkan kemiripan vektor. Dalam sistem AI, Qdrant dapat menyimpan embedding dari dokumen sehingga aplikasi dapat menemukan informasi yang memiliki makna paling dekat dengan pertanyaan pengguna.

Prosesnya berbeda dari pencarian kata kunci biasa. Jika pencarian tradisional mencari kecocokan teks, pencarian vektor mengubah teks menjadi angka melalui model embedding. Teks yang memiliki konteks atau makna serupa kemudian akan memiliki posisi yang berdekatan di dalam ruang vektor.

Contohnya, dokumen berisi kalimat "Barang dapat dikembalikan maksimal tujuh hari setelah diterima". Pengguna tidak harus mengetik kalimat yang sama. Pertanyaan seperti "bisa tukar barang sampai kapan?" tetap dapat menemukan potongan dokumen tersebut karena sistem membandingkan kemiripan maknanya.

Kapan Membutuhkan Qdrant?

Qdrant tidak selalu harus digunakan sejak awal. Jika kebutuhan Anda hanya berupa tanya-jawab dokumen melalui antarmuka chat, RAG bawaan Open WebUI sudah dapat menangani proses tersebut tanpa harus membangun vector database secara manual.

Qdrant mulai menarik ketika Anda ingin membangun pipeline RAG sendiri dan menghubungkan knowledge base dengan sistem lain, seperti chatbot WhatsApp, API internal, aplikasi perusahaan, atau workflow otomatis.

Langkah 1: Menjalankan Qdrant dengan Docker

Cara paling sederhana untuk menjalankan Qdrant secara lokal adalah menggunakan Docker:

docker run -d --name qdrant \
  -p 6333:6333 \
  -v qdrant_data:/qdrant/storage \
  qdrant/qdrant

Parameter -p 6333:6333 membuka port Qdrant pada komputer lokal, sedangkan volume qdrant_data digunakan untuk menyimpan data Qdrant agar tidak hilang ketika container dihentikan.

Setelah container berjalan, dashboard Qdrant dapat dibuka melalui http://localhost:6333/dashboard. Dashboard ini dapat digunakan untuk melihat collection dan memeriksa data yang tersimpan.

Jika Anda belum terbiasa menjalankan layanan menggunakan Docker, Anda juga dapat melihat panduan instalasi n8n dengan Docker untuk memahami konsep dasar container dan volume.

Langkah 2: Membuat Embedding dengan Ollama

Qdrant bertugas menyimpan dan mencari vektor. Sementara itu, proses mengubah teks menjadi vektor dilakukan oleh model embedding.

Untuk menjalankannya secara lokal, salah satu pilihan adalah menggunakan Ollama dengan model nomic-embed-text:

ollama pull nomic-embed-text

Setelah model tersedia, teks dapat dikirim ke Ollama untuk menghasilkan embedding:

curl http://localhost:11434/api/embeddings -d '{
  "model": "nomic-embed-text",
  "prompt": "Barang dapat diretur maksimal 7 hari setelah diterima."
}'

Respons dari Ollama berisi deretan angka. Deretan angka tersebut merupakan representasi vektor dari teks yang dikirim.

Ada dua hal penting yang perlu diperhatikan. Pertama, vektor dalam satu collection harus menggunakan model embedding yang kompatibel. Jangan mencampurkan embedding dari model berbeda secara sembarangan. Kedua, dokumen sebaiknya dipotong menjadi beberapa chunk sebelum dibuat embedding. Potongan yang terlalu besar dapat membuat representasi maknanya menjadi kurang spesifik.

Langkah 3: Membuat Collection di Qdrant

Setelah mengetahui dimensi embedding yang digunakan, buat collection di Qdrant. Dalam contoh ini, nomic-embed-text digunakan dengan ukuran vektor 768:

curl -X PUT http://localhost:6333/collections/dokumen \
  -H 'Content-Type: application/json' \
  -d '{
    "vectors": {
      "size": 768,
      "distance": "Cosine"
    }
  }'

Parameter size menentukan jumlah dimensi vektor, sedangkan distance menentukan metode yang digunakan untuk mengukur kemiripan antarvektor. Cosine merupakan salah satu metode yang umum digunakan untuk pencarian berbasis embedding.

Langkah 4: Menyimpan Embedding ke Qdrant

Setelah embedding dibuat, vektor tersebut dapat disimpan sebagai point di dalam collection. Selain vektor, kita dapat menyimpan informasi tambahan melalui payload, seperti teks asli, nama dokumen, kategori, atau sumber informasi.

curl -X PUT http://localhost:6333/collections/dokumen/points \
  -H 'Content-Type: application/json' \
  -d '{
    "points": [
      {
        "id": 1,
        "vector": [/* 768 angka */],
        "payload": {
          "teks": "Barang dapat diretur maksimal 7 hari setelah diterima.",
          "sumber": "kebijakan-retur.pdf"
        }
      }
    ]
  }'

Dalam implementasi sebenarnya, bagian vector akan berisi hasil embedding dari Ollama. Sementara payload menyimpan informasi yang nantinya dibutuhkan ketika hasil pencarian dikembalikan ke aplikasi.

Langkah 5: Melakukan Pencarian Semantik

Proses pencarian bekerja dengan cara yang sama seperti saat membuat data. Pertanyaan pengguna terlebih dahulu diubah menjadi embedding menggunakan model yang sama, kemudian vektor tersebut dikirim ke Qdrant untuk mencari data yang paling mirip.

Misalnya pengguna bertanya:

bisa tukar barang sampai kapan?

Pertanyaan tersebut tidak harus mengandung kata "retur" atau "pengembalian". Setelah diubah menjadi embedding, Qdrant mencari vector yang memiliki kemiripan paling tinggi.

Hasil pencarian kemudian dapat dibatasi, misalnya hanya mengambil tiga potongan dokumen dengan skor kemiripan tertinggi. Potongan tersebut selanjutnya menjadi konteks yang diberikan kepada LLM.

Di sinilah Qdrant menjadi salah satu komponen penting dalam arsitektur RAG: Qdrant menemukan informasi yang relevan, sedangkan LLM menggunakan informasi tersebut untuk menyusun jawaban.

Langkah 6: Menghubungkan Qdrant dengan Workflow RAG di n8n

Karena Qdrant menyediakan akses melalui HTTP API, database ini dapat dihubungkan dengan workflow automation seperti n8n.

Secara sederhana, pipeline RAG dapat dibagi menjadi dua workflow utama.

Workflow untuk Mengindeks Dokumen

Workflow pertama bertugas memasukkan dokumen ke knowledge base:

  1. Mengambil dokumen baru dari folder atau sumber data.
  2. Membaca dan memecah dokumen menjadi beberapa chunk.
  3. Mengubah setiap chunk menjadi embedding menggunakan Ollama.
  4. Menyimpan embedding dan metadata ke Qdrant.

Workflow untuk Menjawab Pertanyaan

Workflow kedua menangani pertanyaan dari pengguna:

  1. Menerima pertanyaan melalui webhook, chatbot, atau aplikasi.
  2. Mengubah pertanyaan menjadi embedding.
  3. Mencari potongan dokumen yang relevan di Qdrant.
  4. Mengirim hasil pencarian sebagai konteks ke LLM.
  5. Mengembalikan jawaban kepada pengguna.

Dengan pola tersebut, perubahan dokumen dapat diproses secara otomatis. Ketika dokumen baru masuk atau dokumen lama diperbarui, workflow dapat menjalankan proses indexing tanpa harus memasukkan data secara manual.

Qdrant atau RAG Bawaan Open WebUI?

Pilihan antara keduanya bergantung pada kebutuhan sistem. Open WebUI lebih praktis jika tujuan utamanya adalah menyediakan antarmuka chat untuk bertanya berdasarkan dokumen. Anda tidak perlu membangun sendiri seluruh proses indexing dan retrieval.

Qdrant lebih relevan ketika knowledge base perlu menjadi bagian dari sistem yang lebih besar. Contohnya adalah chatbot WhatsApp, aplikasi internal, API, sistem customer service, atau workflow automation yang membutuhkan kontrol lebih besar terhadap proses pencarian.

Kebutuhan Pendekatan
Chat dengan dokumen RAG bawaan Open WebUI
Belajar konsep RAG Qdrant + Ollama
Integrasi dengan aplikasi Qdrant + API
Workflow otomatis Qdrant + n8n
Knowledge base yang terus berkembang Qdrant + pipeline indexing

Kesimpulan

Qdrant dapat menjadi fondasi pencarian semantik dalam aplikasi AI yang membutuhkan akses ke knowledge base sendiri. Alurnya relatif sederhana: dokumen dipecah menjadi beberapa bagian, setiap bagian dibuat menjadi embedding, embedding disimpan di Qdrant, kemudian pertanyaan pengguna diubah menjadi embedding untuk menemukan informasi yang paling relevan.

Ketika proses tersebut digabungkan dengan Ollama, n8n, dan LLM, hasilnya dapat menjadi pipeline RAG yang berjalan secara lokal dan dapat dikembangkan sesuai kebutuhan aplikasi. Namun, jika kebutuhan hanya sebatas bertanya kepada kumpulan dokumen melalui interface chat, menggunakan fitur RAG yang sudah tersedia dapat menjadi pilihan yang lebih sederhana.

Arsitektur seperti ini juga dapat digunakan untuk membangun AI automation yang memanfaatkan dokumen dan knowledge base perusahaan. Jika kebutuhan Anda sudah masuk ke tahap integrasi dengan aplikasi, chatbot, atau sistem internal, hubungi Clovertechno untuk membahas rancangan arsitekturnya.

qdrantvector databaseragtutorial

Butuh software atau AI automation untuk bisnis Anda?

Ceritakan prosesnya, kami bantu petakan solusinya. Konsultasi awal gratis, tanpa komitmen.

Chat WhatsApp