All Products
Search
Document Center

OpenSearch:Konfigurasi indeks vektor umum

Last Updated:Jun 13, 2026

Dokumen ini menjelaskan cara mengonfigurasi pengaturan umum dan Advanced configuration untuk indeks vektor saat membuat tabel guna memenuhi kebutuhan performa, biaya, dan real-time dari skenario bisnis Anda.

Parameter

Pada langkah ke-4 pembuatan tabel, Anda dapat mengonfigurasi pengaturan detail untuk bidang vektor di bagian Index Schema.

Dimensi vektor

  • Tujuan: Menentukan jumlah fitur dalam sebuah vektor. Nilai ini harus persis sesuai dengan dimensi output model embedding Anda.

  • Rekomendasi:

    • Pastikan konsistensi: Jika dimensi yang dikonfigurasi tidak sesuai dengan dimensi data vektor yang ditulis, pembuatan indeks akan gagal.

    • Dampak performa: Dimensi yang lebih tinggi memungkinkan vektor merepresentasikan lebih banyak informasi, tetapi juga meningkatkan penggunaan memori dan beban komputasi. Menggandakan dimensi kira-kira menggandakan penggunaan memori.

Jenis jarak

  • Tujuan: Menentukan metode perhitungan kemiripan antar vektor. Pemilihan jenis jarak yang tepat sangat penting untuk kualitas pengambilan (retrieval) dan bergantung pada karakteristik data serta skenario bisnis Anda.

  • Panduan pemilihan:

    Distance type

    Deskripsi skor

    Cosine distance

    Skor berkisar antara [-1, 1], di mana skor yang lebih tinggi menunjukkan kemiripan yang lebih besar. Skor 1 berarti vektor identik, sedangkan -1 berarti vektor tersebut mengarah ke arah yang berlawanan.

    Inner product distance

    Skor yang lebih tinggi menunjukkan kemiripan yang lebih besar.

    Squared Euclidean distance

    Skor yang lebih rendah menunjukkan kemiripan yang lebih besar. Skor 0 berarti vektor identik.

Algoritma indeks vektor

  • Tujuan: Memilih algoritma dasar untuk membangun indeks vektor. Algoritma yang berbeda menawarkan berbagai pertukaran antara kecepatan pembuatan indeks, penggunaan memori, performa kueri, dan recall.

  • Panduan pemilihan:

    Algorithm

    Deskripsi

    Distance type

    Skala data

    Recall

    Latensi

    Penggunaan memori

    Kasus penggunaan utama

    FLAT

    (sebelumnya Linear)

    • Skala vektor: Cocok untuk puluhan ribu vektor.

    • Skenario: Skenario yang memerlukan akurasi data sempurna (recall 100%).

    Inner Product, Squared Euclidean, Cosine

    Sangat kecil (< 10k)

    Puluhan ribu

    100% (Exact)

    Sangat tinggi

    Sangat rendah

    Benchmarking; re-ranking eksak pada dataset yang sangat kecil.

    HNSW

    • Skala vektor: Cocok untuk puluhan juta vektor.

    • Skenario: Opsi berkinerja-tinggi untuk kasus penggunaan dengan persyaratan ketat terhadap akurasi dan latensi rendah.

    Inner Product, Squared Euclidean, Cosine

    Menengah (10M+)

    Puluhan juta

    Sangat tinggi

    Rendah

    Sangat tinggi

    Pengambilan online berkinerja-tinggi berbasis memori.

    HNSW_RaBitQ

    • Skala vektor: Cocok untuk dataset skala miliaran.

    • Skenario: Ideal untuk dataset masif dengan batasan memori ketat di mana pertukaran akurasi dapat diterima.

    Squared Euclidean

    Besar (100M+)

    Ratusan juta

    Tinggi

    Sangat rendah

    Sangat rendah

    Pengambilan ringan yang dioptimalkan dengan kuantisasi biner.

    CagraHNSW

    • Skala vektor: Cocok untuk ratusan juta vektor.

    • Skenario: Mesin performa berbasis GPU untuk pengindeksan graf, sering digunakan dengan beberapa GPU untuk dataset berukuran ratusan juta.

    Inner Product, Squared Euclidean

    Besar (100M+)

    Ratusan juta

    Sangat tinggi

    Sangat rendah (GPU)

    Sangat tinggi

    Pencarian dipercepat GPU untuk skenario throughput tinggi.

    HNSW_SQ

    (sebelumnya QGraph)

    • Skala vektor: Cocok untuk dataset skala miliaran.

    • Skenario: Untuk kasus penggunaan yang memerlukan performa kueri tinggi dan latensi rendah, di mana persyaratan akurasi kurang ketat.

    Inner Product, Squared Euclidean, Cosine

    Sangat besar (1B+)

    Skala miliaran

    Tinggi

    Rendah

    Tinggi


    IVF_SQ8

    • Skala vektor: Cocok untuk ratusan juta vektor.

    • Skenario: Pendekatan tradisional seimbang ketika persyaratan akurasi dan latensi bersifat moderat.

    Inner Product, Squared Euclidean, Cosine

    Besar (~500M)

    Skala 500 juta

    Sedang hingga tinggi

    Sedang

    Rendah

    Solusi klasik hemat biaya untuk dataset besar yang menggunakan kompresi vektor untuk mengurangi penggunaan memori. Ideal untuk menyeimbangkan biaya dan skala, terutama dengan tiering data cold/hot.

    DiskANN

    • Skala vektor: Dirancang untuk skala maksimum, menangani dataset berisi satu miliar vektor atau lebih.

    • Skenario: Menggunakan disk lokal, sehingga cocok untuk skenario di mana latensi yang lebih tinggi dapat diterima dan penggunaan memori harus diminimalkan.

    Inner Product, Squared Euclidean, Cosine

    Masif (1B+)

    Lebih dari satu miliar

    Tinggi

    Sedang hingga tinggi

    Sangat rendah

    Pencarian berbasis disk untuk dataset skala ultra-besar.

Real-time indexing

  • Tujuan: Saat diaktifkan, data yang ditulis secara inkremental diindeks dan menjadi dapat dicari dalam hitungan detik.

  • Cara kerja: Sistem pertama-tama membangun indeks sementara di memori untuk penulisan data real-time. Setelah indeks sementara ini mencapai ukuran tertentu, sistem menggabungkan datanya ke dalam indeks lengkap di disk.

  • Rekomendasi:

    • Aktifkan (true): Direkomendasikan untuk layanan online yang memerlukan data agar dapat langsung dicari setelah ditulis. Opsi ini mengonsumsi sedikit tambahan resource memori dan CPU.

    • Nonaktifkan (false): Cocok untuk analitik offline atau data yang tidak sering diperbarui setelah impor penuh.


Advanced configuration

Linear build threshold

  • Tujuan: Ketika jumlah vektor dalam sebuah shard berada di bawah ambang batas ini, sistem melakukan pencarian brute-force menggunakan algoritma FLAT, mengabaikan algoritma indeks vektor yang Anda pilih.

  • Rekomendasi:

    • Default: 5000. Untuk dataset sebesar ini, pencarian brute-force sering kali berkinerja sama baik atau lebih baik daripada indeks kompleks karena overhead pembuatan indeks yang lebih rendah.

    • Kapan menyesuaikan: Biasanya Anda tidak perlu mengubah nilai ini. Namun, jika Anda memiliki konkurensi kueri yang sangat tinggi dan volume data Anda mendekati ambang batas, Anda dapat menurunkan nilai ini untuk memaksa penggunaan indeks berkinerja tinggi seperti HNSW. Hal ini dapat meningkatkan overhead pembuatan indeks.

Ignore invalid vector data

  • Tujuan: Mengontrol cara sistem menangani vektor tidak valid (misalnya, ketidaksesuaian dimensi atau nilai null) yang ditemui selama pembuatan indeks penuh atau inkremental.

  • Rekomendasi:

    Opsi

    Perilaku

    Kasus penggunaan yang direkomendasikan

    true

    Sistem melewatkan baris apa pun yang berisi vektor tidak valid, mencatat peringatan, dan melanjutkan tugas pembuatan indeks.

    Pengembangan dan pengujian. Memungkinkan Anda melakukan debug dengan cepat karena mencegah beberapa catatan buruk menyebabkan seluruh tugas build gagal.

    false

    Jika sistem menemukan vektor tidak valid apa pun, tugas pembuatan indeks langsung gagal dan mengembalikan error.

    Lingkungan produksi. Menegakkan kualitas data dan mencegah kehilangan data diam-diam. Kami merekomendasikan menggunakan pengaturan ini dengan pipeline pembersihan data upstream yang andal.

Real-time indexing parameters

  • Tujuan: Saat real-time indexing diaktifkan, parameter ini menyempurnakan pemrosesan aliran data real-time.

  • Contoh parameter: {"proxima.oswg.streamer.segment_size":2048}

  • Penjelasan parameter: proxima.oswg.streamer.segment_size mengontrol jumlah catatan real-time yang terakumulasi di memori sebelum disimpan ke segmen kecil di memori.

  • Rekomendasi penyetelan:

    • Skenario QPS tulis tinggi: Tingkatkan nilai ini (misalnya, menjadi 4096) untuk mengurangi jumlah segmen di memori dan menurunkan overhead manajemen indeks. Hal ini sedikit meningkatkan latensi tulis-ke-pencarian.

    • Skenario QPS tulis rendah: Pertahankan nilai default 2048 atau turunkan agar data yang baru ditulis lebih cepat dapat dicari.

Real-time retrieval parameters

  • Tujuan: Menyesuaikan secara dinamis perilaku pencarian algoritma indeks saat kueri untuk menyeimbangkan recall dan latensi. Kunci dan nilai untuk parameter ini bervariasi tergantung pada algoritma indeks vektor yang dipilih.

  • Deskripsi umum: Parameter ini biasanya mengontrol cakupan pencarian. Misalnya, dengan algoritma HNSW, parameter ef mengontrol jumlah node tetangga yang dilalui selama pencarian. Nilai ef yang lebih besar meningkatkan recall tetapi juga meningkatkan latensi kueri.

  • Contoh konfigurasi (HNSW):

    • {"searcher_name":"HNSW", "ef":200}

    • Nilai ef biasanya berkisar antara k (jumlah hasil teratas yang akan dikembalikan) hingga 4096; nilai awal yang baik adalah 100, yang dapat Anda sesuaikan berdasarkan kebutuhan bisnis terhadap recall dan latensi.

Vector separator

  • Tujuan: Menentukan pemisah yang digunakan antara nilai dimensi dalam data vektor berformat string.

  • Contoh: Untuk data vektor 1.05,0.15,0.14, pemisahnya adalah koma (,), yang merupakan default sistem. Biasanya Anda tidak perlu mengubah pengaturan ini.

Kontrol Volume dan Perencanaan Sumber Daya

Volume tulis data vektor secara langsung memengaruhi konsumsi memori pemrosesan data dan performa kueri. Kendalikan kecepatan tulis dan alokasikan resource yang cukup untuk mencegah peningkatan latensi kueri akibat memori pemrosesan data yang tidak mencukupi.

Kontrol volume tulis

  • Batasi ukuran batch: Hindari menulis terlalu banyak dokumen dalam satu batch. Bagi data ke dalam batch yang lebih kecil berdasarkan dimensi vektor dan tipe instans Anda untuk mencegah lonjakan mendadak dalam penggunaan memori pemrosesan data.

  • Kontrol frekuensi tulis: Untuk skenario tulis frekuensi tinggi, pertimbangkan untuk mengurangi konkurensi tulis atau memperpanjang interval antar batch. Hal ini memberikan waktu yang cukup untuk pembuatan indeks dan penggabungan segmen.

  • Monitor memori pemrosesan data: Jika penggunaan memori pemrosesan data tetap tinggi setelah penulisan meskipun memori instans secara keseluruhan mencukupi, hal ini menunjukkan overhead memori tinggi dari pembuatan indeks atau penggabungan segmen. Dalam kasus ini, kurangi laju tulis dan tunggu operasi penggabungan selesai sebelum melanjutkan.

Penilaian dan penskalaan resource

Jika Anda mengalami kekurangan memori pemrosesan data atau peningkatan signifikan dalam latensi kueri, evaluasi apakah tipe instans Anda saat ini memenuhi kebutuhan bisnis.

  • Gunakan Specification Calculator dan masukkan parameter bisnis Anda, seperti dimensi vektor, volume data, dan QPS, untuk mendapatkan rekomendasi tipe instans.

  • Jika kalkulator menunjukkan bahwa tipe instans Anda saat ini tidak mencukupi, lakukan peningkatan memori dan resource komputasi node data dengan mengubah konfigurasi instans.