Tüm Ürünler
Search
Belge Merkezi

Elasticsearch:Alibaba Cloud Elasticsearch Vector Engine User Guide

Son Güncelleme:Oct 04, 2026

Alibaba Cloud Elasticsearch vektör motoru, tek bir küme içinde tam metin aramasının yanı sıra büyük ölçekli vektör benzerlik araması yapmanızı sağlar. Bu özelliği kullanarak öneri sistemleri, görüntü geri alma işlem hatları ve doğal dil işleme uygulamaları oluşturabilirsiniz.

Vektör motoru, HNSW dizinlerini yığın dışı bellekte saklar. Veri düğümü teknik özelliklerini ve sayısını seçmeden önce, bu konunun ilerleyen kısımlarındaki bellek hesaplama rehberini kullanarak yığın dışı bellek kullanımınızı tahmin edin.
Vektör motoru düzenli olarak güncellenir. En iyi performans ve maliyet verimliliği için Alibaba Cloud Elasticsearch 8.x'in en son sürümünü kullanın.

Ön koşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

Vektör motoru, vektör dizinlerini önbelleğe almak için büyük miktarda yığın dışı bellek kullanır. Uygun veri düğümü teknik özelliklerini ve sayısını seçmek için, bu konunun ilerleyen kısımlarındaki bellek hesaplama rehberini kullanarak yığın dışı bellek kullanımını tahmin edin.

Arama yöntemi seçin

Dizin oluşturmadan önce, kullanım durumunuza hangi kNN arama yönteminin uyduğunu belirleyin:

Yöntem Nasıl çalışır En uygun olduğu durumlar
Yaklaşık kNN Hızlı ve ölçeklenebilir arama için HNSW dizinlemesiyle knn yan tümcesini kullanır Çoğu üretim iş yükü
Tam kNN Her belgeyi kaba kuvvetle puanlamak için bir script_score sorgusu kullanır Küçük veri kümeleri veya hassas puanlama

Yaklaşık kNN, düşük gecikme süresi ve iyi doğruluk sunar. Tam kNN doğru sonuçlar garanti eder ancak büyük veri kümelerinde ölçeklenemez.

Adım 1: Dizin oluşturun

Vektör verilerini depolamak için bir dense_vector alanı içeren bir dizin oluşturun:

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"
      }
    }
  }
}

Temel noktalar:

  • dims değerini gömme modelinizin çıktı boyutuna ayarlayın. Dizindeki tüm belgeler aynı boyutu kullanmalıdır.

  • Veri hacminize ve performans gereksinimlerinize göre number_of_shards ve number_of_replicas değerlerini belirleyin.

  • dense_vector; benzerlik ölçütleri ve dizin seçenekleri gibi ek parametreleri destekler. Tam liste için Yoğun vektör alan türü sayfasına bakın.

Adım 2: Belgeleri dizine ekleyin

Toplu API veya tek tek dizin isteklerini kullanarak belgeleri ekleyin. Her belgenin vektörü, eşlemedeki dims değeriyle eşleşmelidir:

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]
}
Önemli

Bir belgenin vektör boyutu, eşlemedeki dims değeriyle eşleşmezse Elasticsearch belgeyi hata ile reddeder.

Adım 3: kNN araması çalıştırın

Yaklaşık kNN (önerilen)

Bir sorgu vektörü ve döndürülecek sonuç sayısını belirterek bir kNN sorgusu gönderin:

GET my_vector_index/_search
{
  "knn": {
    "field": "my_vector",
    "query_vector": [-5, 9, -12],
    "k": 10,
    "num_candidates": 100
  },
  "fields": ["my_text"]
}
Parametre Açıklama
k Döndürülecek en yakın komşu sayısı. num_candidates değerinden küçük veya ona eşit olmalıdır. Varsayılan olarak size değerini alır.
num_candidates Sonuçları birleştirmeden önce parça başına toplanacak en yakın komşu adayları. k değerinden büyük ve 10.000'den küçük veya ona eşit olmalıdır. Varsayılan olarak Math.min(1.5 * k, 10000) değerini alır. Daha yüksek bir değer, gecikme süresi pahasına geri çağırmayı iyileştirir.
HNSW terimleriyle, num_candidates sorgu zamanındaki ef (keşif faktörü) değerine karşılık gelir; her parçanın en iyi sonuçlarını döndürmeden önce kaç aday belgeyi tarayacağını kontrol eder. k ise tüm parçalarda döndürülen nihai belge sayısıdır.

Tam kNN

Kaba kuvvetle puanlama yapmak için bir vektör işlevi içeren script_score sorgusu kullanın. Bu yaklaşım dizindeki tüm belgeleri tarar ve büyük veri kümelerinde ölçeklenemez.

Ek kNN arama yetenekleri

knn yan tümcesi aşağıdaki özellikleri destekler:

Özellik Açıklama
Filtreleme kNN aramasını çalıştırmadan önce sonuçları bir belge alt kümesiyle sınırlamak için bir filter yan tümcesi ekleyin.
Minimum skor eşiği Minimum benzerlik skorunun altındaki belgeleri hariç tutmak için similarity parametresini kullanın.
İç içe alanlar nested alanlarda depolanan vektörlerde kNN aramaları çalıştırın.
Çok alanlı kNN Tek bir istekte birden fazla knn alanında sorgu çalıştırın.
Yeniden puanlama Daha yüksek hassasiyet için yaklaşık kNN sonuçlarını bir script yeniden puanlama ile sıralayın.

Tam özellik referansı için k-en yakın komşu (kNN) araması sayfasına bakın.

Üretim hususları

Bellek planlaması

Vektör motoru, HNSW dizinlerini yığın dışı bellekte saklar. Belleğin yetersiz tahmini, öğelerin önbellekten atılmasına neden olur ve arama gecikme süresini artırır. Üretime geçmeden önce, bu konudaki bellek hesaplama rehberini kullanarak veri düğümlerinizin boyutunu belirleyin.

`num_candidates` ayarı

Varsayılan değerle (Math.min(1.5 * k, 10000)) başlayın. Geri çağırma hedefinizin altında kalırsa num_candidates değerini kademeli olarak artırın. Daha yüksek bir değer, daha fazla performans maliyeti karşılığında geri çağırmayı iyileştirir.

Parça planlaması

Beklenen veri hacminize, sorgu aktarım hızınıza ve kullanılabilirlik gereksinimlerinize göre number_of_shards ve number_of_replicas değerlerini ayarlayın.

Boyut tutarlılığı

dims değerini gömme modelinizin tam çıktı boyutuna ayarlayın. Boyut uyumsuzlukları dizine ekleme hatalarına neden olur.

Elasticsearch'ü güncel tutun

Vektör motoru, performans ve maliyet verimliliğinde sürekli iyileştirmeler alır. Bu güncellemelerden yararlanmak için en son Alibaba Cloud Elasticsearch 8.x sürümünü çalıştırın.