All Products
Search
Document Center

Elasticsearch:Panduan Pengguna Alibaba Cloud Elasticsearch Vector Engine

Last Updated:Feb 13, 2026

Alibaba Cloud Elasticsearch vector engine dirancang untuk menangani data vektor berskala besar, menggabungkan kemampuan pencarian Elasticsearch yang andal dengan komputasi kemiripan vektor. Engine ini cocok digunakan untuk sistem rekomendasi, pengambilan gambar, dan pemrosesan bahasa alami. Topik ini menjelaskan cara menggunakan Alibaba Cloud Elasticsearch vector engine secara efisien serta menyediakan praktik terbaik. Vector engine diperbarui secara berkala; gunakan versi terbaru Alibaba Cloud Elasticsearch untuk mencapai performa optimal, efisiensi biaya, dan pengalaman pengguna terbaik.

Prasyarat

Instans ES telah dibuat. Jika Anda belum membuat instans, lihat Quick start: From creating an instance to retrieving data untuk membuat instans Alibaba Cloud ES 8.x versi terbaru.

Catatan

Vector engine menggunakan jumlah besar memori off-heap untuk cache indeks vektor. Untuk memilih spesifikasi dan jumlah node data yang sesuai, perkirakan penggunaan memori off-heap menggunakan panduan perhitungan memori yang tersedia di bagian akhir topik ini.

Prosedur

1. Buat indeks

Buat indeks yang mendukung penyimpanan data vektor. Berikut contoh definisi indeks:

PUT /my_vector_index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "my_vector": {
        "type": "dense_vector",
        "dims": 3
      },
      "my_text" : {
        "type" : "keyword"
      }
    }
  }
}
Penting
  • Pengaturan number_of_shards dan number_of_replicas bergantung pada volume data dan kebutuhan performa Anda.

  • Gunakan tipe bidang dense_vector untuk menyimpan data vektor. Atur parameter dims sesuai dimensi vektor.

  • Tipe bidang dense_vector memiliki banyak parameter. Untuk detailnya, lihat Dense vector field type.

2. Impor data

Impor data ke indeks vektor Elasticsearch Anda menggunakan metode seperti Bulk API. Berikut contohnya:

PUT my_vector_index/_doc/1
{
  "my_text" : "text1",
  "my_vector" : [0.5, 10, 6]
}

PUT my_vector_index/_doc/2
{
  "my_text" : "text2",
  "my_vector" : [-0.5, 10, 10]
}
Penting

Pastikan dimensi vektor sesuai dengan dimensi yang ditentukan dalam indeks.

3. Lakukan pencarian vektor

Gunakan pencarian kemiripan vektor Elasticsearch untuk menemukan dokumen paling mirip dengan menentukan vektor kueri. Berikut contoh kuerinya:

GET my_vector_index/_search
{
  "knn": {
    "field": "my_vector",
    "query_vector": [-5, 9, -12],
    "k": 10,
    "num_candidates": 100
  },
  "fields": [ "my_text" ]
}

Parameter

Konten

k

(Opsional) Jumlah tetangga terdekat yang akan dikembalikan. Nilai ini harus kurang dari atau sama dengan num_candidates. Secara default, nilainya sama dengan nilai size.

num_candidates

(Opsional) Jumlah kandidat tetangga terdekat yang dipertimbangkan untuk setiap shard. Parameter ini berdampak signifikan terhadap performa dan tingkat recall. Nilai num_candidates yang lebih besar meningkatkan tingkat recall namun juga berdampak lebih besar terhadap performa. Nilai ini harus lebih besar dari k dan tidak boleh melebihi 10.000. Elasticsearch mengumpulkan hasil num_candidates dari setiap shard lalu menggabungkannya untuk menemukan k hasil teratas. Meningkatkan nilai num_candidates cenderung meningkatkan akurasi k hasil akhir. Nilai default-nya adalah Math.min(1,5 * k, 10.000).

Catatan

Bagian ini menjelaskan parameter k dan num_candidates. Dalam HNSW, num_candidates merujuk pada nilai ef dari kueri, yang merepresentasikan jumlah dokumen terdekat sebanyak num_candidates yang dikumpulkan dalam setiap shard, sedangkan k adalah jumlah dokumen yang dikembalikan Elasticsearch dalam hasil akhir.

Fitur tambahan pencarian vektor meliputi hal-hal berikut:

  • Kueri knn mendukung filter, parameter similarity untuk mengatur skor minimum score bagi dokumen doc yang cocok, serta bidang nested.

  • Mendukung kueri beberapa bidang knn sekaligus.

  • Mendukung kueri knn eksak menggunakan script.

  • Mendukung rescore menggunakan script.

  • Untuk daftar lengkap fitur, lihat k-nearest neighbor (knn) search.