All Products
Search
Document Center

OpenSearch:Pencarian vektor

Last Updated:Mar 25, 2026

OpenSearch menyediakan fitur vector search untuk berbagai skenario bisnis kompleks. Pada skenario tertentu, seperti pencarian tanya-jawab di bidang pendidikan dan image search, Anda dapat menggabungkan fitur vector search dengan fitur multi-channel search untuk meningkatkan akurasi hasil pencarian secara signifikan. Topik ini menjelaskan sintaksis dan catatan terkait indeks vektor.

Sintaksis

query = vector_index:'vector'&vector_search={"vector_index":{"namespaces":[],"threshold":0.5,"top_n":10,"search_params":{}}}

Parameter vector_search bersifat opsional dan digunakan untuk mengonfigurasi kueri indeks vektor. Parameter ini menggunakan format dictionary, dengan kunci berupa nama indeks vektor yang akan dikueri dan nilai berisi konfigurasi kueri spesifik. Nilai tersebut dapat mencakup item konfigurasi umum berikut:

Parameter

Type

Nilai default

Deskripsi

namespaces

list<string>

Mem-partisi indeks vektor berdasarkan namespace. Hal ini memungkinkan Anda membatasi permintaan kueri hanya ke partisi tertentu dari indeks tersebut. Jangan gunakan lebih dari 10.000 namespace. Jika Anda mengonfigurasi namespaces, Anda harus menentukan namespace dalam kueri Anda.

threshold

float

Ambang batas skor minimum untuk pengambilan vektor.

top_n

uint32

Jumlah N hasil teratas yang dikembalikan untuk pengambilan vektor.

search_params.qc_scan_ratio

float

0,01

Rasio dokumen yang dipindai selama kueri indeks QC. Jumlah dokumen yang dipindai = Total jumlah dokumen × scan_ratio.

search_params.hnsw_ef

uint32

500

Jumlah dokumen yang dipindai selama kueri indeks HNSW. Nilai yang lebih besar meningkatkan tingkat recall dan waktu yang dibutuhkan.

Catatan

Parameter vector_search juga berlaku dalam skenario multi-channel recall.

Contoh: Kueri indeks vektor berdimensi 64

vector: '0.377796,-0.958450,0.409853,-0.238177,-1.293826,0.356797,-0.295727,0.847301,-1.220337,0.148032,-1.128458,0.903187,0.509352,0.293686,-1.005852,-0.488839,0.888227,-0.555556,-0.658025,0.267552,-0.567601,0.003045,0.591734,-0.515983,-1.316453,-1.462450,0.091946,1.554954,0.384802,0.720498,0.144338,1.217826,0.724039,0.044212,0.571332,-1.425430,0.618965,0.481887,-1.617787,1.505416,-0.683652,1.030900,0.562021,0.162437,0.816546,0.112229,-0.739288,-0.342643,-0.199292,0.508368,-1.384887,-1.842170,0.952622,-1.699499,0.199430,-0.232464,-0.273227,-0.383696,-0.511302,0.005458,1.873572,-0.926169,-0.417587,-0.660156'

Contoh penggunaan

Menetapkan ambang batas skor minimum

Deskripsi: Mengecualikan vektor dengan skor di bawah ambang batas yang ditentukan dari hasil pengambilan.

Format parameter lama: &sf=number

Format parameter baru: vector_search={"vector_index":{"threshold":0.8}}

Contoh:

// Versi lama
query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&sf=0.8'

// Versi baru
query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6'&vector_search={"index_name":{"threshold":0.8}}

Menentukan kueri top N

Deskripsi: Menentukan jumlah hasil teratas yang dikembalikan dari pencarian vektor.

Format parameter lama: &n=number

Format parameter baru: vector_search={"vector_index":{"top_n":10}}

Contoh:

// Versi lama
query=vector_index:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&n=10'

// Versi baru
query=vector_index:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6'&vector_search={"index_name":{"top_n":10}}

Mengurutkan hasil berdasarkan skor vektor

Deskripsi: Gunakan fungsi proxima_score(index_name) dalam ekspresi penyortiran halus untuk mengambil skor jarak vektor.

  • index_name: Nama indeks vektor.

  • Mengembalikan nilai float yang merepresentasikan jarak vektor. Untuk dokumen yang tidak dikembalikan oleh pencarian vektor, skor default-nya adalah 10.000.

  • Contoh: proxima_score(your_vector_index).

Prosedur:

  1. Buat kebijakan penyortiran halus:

image

  1. Pada halaman Search Test, pilih kebijakan penyortiran halus tersebut dan jalankan pengujian:

image

Catatan
  • Sistem menggunakan Jarak Euclidean (l2) secara default.

  • Untuk jarak inner product (ip), skor vektor yang lebih besar menunjukkan relevansi dokumen yang lebih tinggi.

  • Untuk Jarak Euclidean (l2), skor vektor yang lebih kecil menunjukkan relevansi dokumen yang lebih tinggi.

Catatan

  • Secara default, sistem menggunakan Jarak Euclidean (l2) untuk jarak vektor selama pembuatan indeks. Jika Anda ingin menggunakan jarak inner product (ip), Anda harus melakukan Normalisasi vektor sebelum meneruskan data ke engine.

  • Bidang yang sesuai dengan indeks vektor harus bertipe DOUBLE_ARRAY.

  • Pemisah kata vektor mendukung dimensi 64, 128, 256, dan 512. Jumlah elemen dalam bidang DOUBLE_ARRAY yang sesuai harus sesuai dengan dimensi yang ditentukan.

  • Panjang maksimum indeks vektor adalah 4 KB sebelum encoding. Satu kueri mendukung maksimal dua indeks vektor.