Aracılığıyla paylaş


vector_search işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL

Önemli

Bu özellik Genel Önizlemededir.

işlevi, vector_search() SQL kullanarak Mozaik AI Vektör Arama dizinini sorgulamanıza olanak tanır.

Gereksinimler

  • Bu işlev klasik SQL ambarlarında kullanılamaz.
  • Daha fazla bilgi için bkz . Databricks SQL fiyatlandırma sayfası.
  • Bu işlev, Mozaik AI Vektör Arama'nin desteklendiği bölgelerde kullanılabilir.

Söz dizimi

Databricks Runtime 15.3 ve üzerinde, dizinde ne aranacağını belirtmek için query_text veya query_vector kullanabilirsiniz.

SELECT * FROM vector_search(
  index,
  { query_text | query_vector },
  [ num_results ]
)

Databricks Runtime 15.2 ve altında, dizinde ne aranacağını belirtmek için query kullanabilirsiniz.

SELECT * FROM vector_search(
  index, query, num_results
)

Bağımsız değişkenler

Tüm bağımsız değişkenler gibi vector_search(index => indexName, query_text => queryText)ada göre geçirilmelidir.

  • index: Çağırmalar STRING için aynı çalışma alanında var olan bir vektör arama dizininin tam adı olan sabit. Tanımlayıcının dizinde "Seç" izni olmalıdır.
  • Dizinde aranacak ifadeyi belirtmek için aşağıdakilerden birini kullanın:
    • Databricks Runtime 15.3 veya üzeri için, query_textekleme kaynak sütununda belirli bir metin dizesini aramak için kullanın. Sorgu, dizinde aranacak dizenin bir STRING ifadesi olmalıdır.
    • Databricks Runtime 15.3 veya üzeri için, Delta Sync Index'inizin gömme vektör sütununda belirli bir vektör aramak için query_vector kullanın. Bu bağımsız değişken, kendi kendine yönetilen vektörleri kullanarak Delta Sync Dizininde arama yapmak için gereklidir. Sorgu, dizinde aranacak ekleme vektörünün ARRAY<FLOAT>, ARRAY<DOUBLE>veya ARRAY<DECIMAL(_, _)> ifadesi olmalıdır.
    • Databricks Runtime 15.2 veya altında, dizininizde aranacak dizeyi belirtmek için query kullanın.
  • num_results (isteğe bağlı): Tamsayı sabiti, döndürülecek maksimum kayıt sayısı. Varsayılan değer 10'dır.

Döndürülenler

Dizinden en çok eşleşen kayıtların tablosu. Dizindeki tüm sütunlar dahildir.

Örnekler

Aşağıdaki bölümlerde farklı dizin aramaları için örnek SQL sorguları gösterilmektedir.

Kaynak sütunları ekleme ile dizinlerde metin sorguları

Benzer ürünleri ada göre bulmak için ürün SKU'larının dizinini arayın. Aşağıdaki örnek, yalnızca Databricks Runtime 15.3 ve sonraki sürümleri için desteklenen query_text kullanır. Databricks Runtime 15.2 ve altı için queryyerine query_text kullanın.


SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query_text => "iphone", num_results => 2)
Kimlik Ürün adı
10 iPhone
20 iPhone SE

Aşağıdaki örnek, LATERAL alt sorgusu kullanarak aynı anda birden çok terim arar.


SELECT
  query_txt,
  query_id,
  search.*
FROM
  query_table,
  LATERAL(
SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query_text => query_txt, num_results => 2)
  ) as search
query_txt sorgu_kimliği search.id search.product_name
iphone 1 10 iPhone 10
iphone 1 20 iPhone SE
piksel 8 2 30 Piksel 8
piksel 8 2 40 Piksel 8a

Kaynak sütunları ekleme ile dizinlerde metin sorguları

Önceden hesaplanmış gömüler içeren bir görüntü dizininde arama yaparak, gömüleri kullanarak benzer görüntüleri bulun. Aşağıdaki örnek, yalnızca Databricks Runtime 15.3 ve sonraki sürümleri için desteklenen query_vector kullanır. Databricks Runtime 15.2 ve altı için queryyerine query_vector kullanın.


SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query_vector => ARRAY(0.45, -0.35, 0.78, 0.22), num_results => 3)

SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query_vector => ARRAY(0.45F, -0.35F, 0.78F, 0.22F), num_results => 3)

SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query_vector => ARRAY(0.45D, -0.35D, 0.78D, 0.22D), num_results => 3)
Kimlik görsel_adı görüntü yerleştirme
28 horse.jpg [0.46, -0.34, 0.77, 0.21]
27 donkey.jpg [0.44, -0.36, 0.79, 0.23]
5 elk.jpg [0.23, -0.44, 0.77, 0.80]

Aşağıdaki örnek, LATERAL alt sorgusu kullanarak aynı anda birden çok terim arar.


SELECT
  query_embedding,
  search.*
FROM
  query_table,
  LATERAL(
SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query_vector => image_embedding, num_results => 1)
  ) as search
query_embedding search.id arama.görüntü_adı arama_görüntü_gömme
[0.45, -0.35, 0.78, 0.22] 27 donkey.jpg [0.46, -0.34, 0.77, 0.21]
[0.14, 0.29, 0.30, -0.90] 3 landscape.jpg [0.15, 0.30, 0.31, -0.91]
[0.23, -0.44, 0.77, 0.80] 10 golden_gate_bridge.jpg [0.28, -0.40, 0.23, 0.81]
[0.88, 0.88, 0.88, 0.88] 44 blank.jpg [0.88, 0.88, 0.88, 0.88]

Sınırlamalar

Önizleme sırasında aşağıdaki sınırlamalar geçerlidir:

  • Dizin türlerini sorgulama DIRECT_ACCESS desteklenmez.
  • filters_json veya columns giriş parametreleri desteklenmez.
  • 100'den büyük vektör araması num_results desteklenmez.
  • vector_searchTemel Model API'leri tarafından sağlanan aktarım hızı kullanılarak uç noktalara hizmet veren modellerle kullanılamaz.