全部产品
Search
文档中心

OpenSearch:Konfigurasi umum indeks vektor

更新时间:Feb 25, 2026

Topik ini menjelaskan cara mengonfigurasi indeks vektor saat membuat tabel. Gunakan konfigurasi ini untuk memenuhi kebutuhan bisnis Anda terkait kinerja, biaya, dan kemampuan real-time.

Konfigurasi parameter

Pada langkah 4 pembuatan tabel, konfigurasikan Index Schema. Anda dapat mengonfigurasi bidang vektor secara detail pada langkah ini.

image

Dimensi vektor

  • Menentukan jumlah fitur dalam suatu vektor. Atur nilai ini agar sesuai persis dengan dimensi output dari model vektor Anda.

  • Rekomendasi:

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

    • Dampak kinerja: Dimensi yang lebih tinggi menangkap lebih banyak informasi tetapi meningkatkan penggunaan memori dan beban komputasi. Menggandakan dimensi kira-kira menggandakan penggunaan memori.

Jenis jarak

  • Menentukan cara menghitung kemiripan antar vektor. Pilih jenis jarak yang paling sesuai dengan karakteristik data dan skenario bisnis Anda. Pilihan ini secara langsung memengaruhi kualitas pengambilan (retrieval).

  • Panduan pemilihan:

    Distance type

    Makna skor vektor

    Cosine distance

    Skor berkisar antara [-1, 1]. Skor yang lebih tinggi berarti kemiripan lebih tinggi. Skor 1 berarti vektor identik. Skor -1 berarti vektor berlawanan arah.

    Inner Product Distance (InnerProduct)

    Skor yang lebih tinggi berarti kemiripan lebih tinggi.

    Squared Euclidean distance (SquareEuclidean)

    Skor yang lebih rendah berarti kemiripan lebih tinggi. Skor 0 berarti vektor identik.

Algoritma indeks vektor

  • Menentukan algoritma dasar yang digunakan untuk membangun indeks vektor. Setiap algoritma menyeimbangkan kecepatan pembuatan, penggunaan memori, kinerja kueri, dan tingkat recall secara berbeda.

  • Panduan pemilihan:

    Algorithm

    Description

    Distance types

    Data scale

    Recall

    Latency

    RAM usage

    Scenarios

    FLAT

    (formerly Linear)

    • Data scale: Hingga puluhan ribu vektor.

    • Description: Akurasi tinggi. Recall 100%.

    InnerProduct, SquaredEuclidean, Cosine

    Very small (<10k)

    Tens of thousands

    100% (exact)

    Very slow

    Very low

    Benchmarking. Exact ranking for very small datasets.

    HNSW

    • Data scale: Hingga puluhan juta vektor.

    • Description: Performance benchmark. Strict requirements for accuracy and latency.

    InnerProduct, SquaredEuclidean, and Cosine

    Medium (10M+)

    Tens of millions

    Very high

    Low

    Very high

    High-performance in-memory online search.

    HNSW_RaBitQ

    • Vector scale: Supports data volumes of up to one billion vectors.

    • Description: Optimized for massive datasets under strict memory constraints. Lower accuracy requirements.

    SquaredEuclidean

    Medium to large (100M+)

    Hundreds of millions

    High

    Very low

    Very low

    Lightweight search optimized for binary quantization.

    CagraHNSW

    • Data scale: Up to hundreds of millions of vectors.

    • Description: GPU-accelerated graph indexing. Best with multiple GPUs for large-scale workloads.

    InnerProduct, SquaredEuclidean

    Medium to large (100M+)

    Hundreds of millions

    Very high

    Very low (GPU)

    Very high

    GPU acceleration. Extremely high throughput.

    HNSW_SQ

    (formerly QGraph)

    • Data scale: Up to billions of vectors.

    • Description: High query speed and performance. Lower accuracy requirements.

    InnerProduct, SquaredEuclidean, Cosine

    Medium (100M+)

    Billions

    High

    Low

    High

    IVF_SQ8

    • Data scale: Up to hundreds of millions of vectors.

    • Description: Balanced trade-off. Moderate requirements for both accuracy and latency.

    InnerProduct, SquaredEuclidean, and Cosine

    Large scale

    500 million

    Medium to high

    Middle

    Low

    Cold-hot tiered storage for budget-constrained, large-scale workloads. Reduces memory usage by compressing vectors. A classic balance of cost and scale.

    DiskANN

    • Data scale: Billions of vectors or more.

    • Description: Uses local disks. Tolerates higher latency and uses minimal memory.

    InnerProduct, SquaredEuclidean, or Cosine

    Massive (Billion+)

    Billions or more

    High

    Medium to high

    Very low

    Disk-resident, ultra-large-scale search.

Real-time indexing

  • Mengaktifkan pengindeksan dan kueri segera terhadap data inkremental yang ditulis melalui API. Data menjadi terlihat dalam hitungan detik.

  • Cara kerja: Sistem pertama-tama membangun indeks sementara di memori untuk penulisan real-time. Ketika cukup banyak data terkumpul, indeks tersebut digabungkan dengan indeks lengkap berbasis disk.

  • Rekomendasi:

    • Aktifkan (true): Gunakan untuk layanan online di mana data harus segera dapat dicari. Ini menggunakan sumber daya memori dan CPU tambahan.

    • Nonaktifkan (false): Gunakan untuk impor batch atau analitik offline di mana pembaruan jarang dilakukan.


Konfigurasi lanjutan

Ambang batas untuk pembuatan linear

  • Jika jumlah dokumen dalam satu shard kurang dari ambang batas ini, sistem menggunakan Linear (pemindaian brute-force) untuk pencarian—meskipun Anda memilih algoritma indeks vektor lainnya.

  • Rekomendasi:

    • Default: 5000. Ini adalah nilai empiris. Pada skala ini, pencarian brute-force sering kali berkinerja setara atau bahkan lebih baik daripada membangun indeks kompleks.

    • Sesuaikan hanya jika diperlukan: Biasanya, biarkan nilai ini tidak berubah. Jika konkurensi kueri Anda sangat tinggi dan volume data Anda mendekati ambang batas ini, turunkan nilainya untuk memaksa penggunaan indeks berkinerja tinggi seperti HNSW. Perlu diperhatikan bahwa hal ini dapat meningkatkan overhead pembuatan indeks.

Abaikan data vektor yang tidak valid

  • Mengontrol cara sistem menangani vektor abnormal—seperti dimensi yang tidak sesuai atau nilai kosong—selama pembuatan indeks penuh maupun inkremental.

  • Rekomendasi:

    Option

    Behavior

    Recommended scenario

    true

    Melewatkan baris yang berisi vektor tidak valid. Pembuatan indeks dilanjutkan. Peringatan muncul di log.

    Lingkungan pengembangan dan pengujian. Membantu debugging cepat tanpa membiarkan beberapa catatan kotor menghentikan seluruh pekerjaan.

    false

    Menghentikan pembuatan indeks dan mengembalikan error jika terdapat vektor tidak valid.

    Lingkungan produksi. Menjamin kualitas data dan mencegah kehilangan data diam-diam. Gunakan bersama alur kerja pembersihan data hulu.

Parameter real-time indexing

  • Menyetel cara aliran data real-time diproses setelah real-time indexing diaktifkan.

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

  • Penjelasan: Parameter proxima.oswg.streamer.segment_size mengontrol jumlah catatan yang dikumpulkan di memori sebelum disimpan ke segmen kecil di memori (Segment).

  • Rekomendasi penyetelan:

    • Write QPS tinggi: Tingkatkan nilai ini (misalnya, menjadi 4096) untuk mengurangi jumlah segmen di memori dan menurunkan overhead manajemen indeks. Hal ini sedikit meningkatkan penundaan antara penulisan dan ketersediaan untuk kueri.

    • Write QPS rendah: Pertahankan nilai default 2048, atau turunkan sedikit, agar data yang baru ditulis lebih cepat tersedia untuk kueri.

Parameter pengambilan real-time

  • Menyesuaikan perilaku pencarian secara dinamis per algoritma indeks untuk menyeimbangkan recall dan latensi. Kunci dan nilai bergantung pada algoritma indeks vektor yang dipilih.

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

  • Contoh (HNSW):

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

    • Nilai ef biasanya berkisar antara k (jumlah hasil top-K yang diminta) hingga 4096. Mulailah pengujian dari 100 dan sesuaikan berdasarkan kebutuhan recall dan latensi Anda.

Pemisah vektor

  • Menentukan pembatas antar dimensi vektor dalam data vektor berformat string.

  • Contoh: Dalam 1.05,0.15,0.14, pembatasnya adalah koma (,). Ini adalah nilai default. Anda jarang perlu mengubahnya.