Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Penting
Fitur ini ada di Pratinjau Publik.
Fungsi ini vector_search() memungkinkan Anda untuk mengkueri indeks Pencarian Vektor Mosaik AI menggunakan SQL.
Persyaratan
- Fungsi ini tidak tersedia di gudang SQL klasik.
- Untuk informasi selengkapnya, lihat halaman harga Databricks SQL.
- Fungsi ini tersedia di wilayah yang mendukung AI Mosaik Pencarian Vektor.
Sintaks
Di Databricks Runtime 15.3 ke atas, gunakan query_text atau query_vector untuk menentukan apa yang harus dicari dalam indeks.
SELECT * FROM vector_search(
index,
{ query_text | query_vector },
[ num_results ]
)
Di Databricks Runtime 15.2 ke bawah, gunakan query untuk menentukan apa yang harus dicari dalam indeks.
SELECT * FROM vector_search(
index, query, num_results
)
Argumen
Semua argumen harus diteruskan berdasarkan nama, seperti vector_search(index => indexName, query_text => queryText).
-
index: KonstantaSTRING, nama yang sepenuhnya memenuhi syarat dari indeks pencarian vektor yang ada di ruang kerja yang sama untuk pemanggilan. Pendefinisi harus memilikiSelectizin pada indeks. - Gunakan salah satu hal berikut ini untuk menentukan ekspresi yang akan dicari dalam indeks:
- Untuk Databricks Runtime 15.3 atau lebih tinggi, gunakan
query_textuntuk mencari teks tertentu di kolom sumber penyematan teks pada Indeks Sinkronisasi Delta Anda . Kueri harus berupa ekspresiSTRINGstring untuk dicari dalam indeks. - Untuk Databricks Runtime 15.3 atau lebih tinggi, gunakan
query_vectoruntuk mencari vektor tertentu di kolom vektor tertanam pada Indeks Sinkronisasi Delta Anda. Argumen ini Diperlukan untuk mencari Indeks Sinkronisasi Delta menggunakan vektor yang dikelola sendiri. Kueri harus berupa ekspresiARRAY<FLOAT>, atauARRAY<DOUBLE>, atauARRAY<DECIMAL(_, _)>dari vektor penyematan untuk dicari dalam indeks. - Untuk Databricks Runtime 15.2 atau di bawahnya, gunakan
queryuntuk menentukan string yang akan dicari dalam indeks Anda.
- Untuk Databricks Runtime 15.3 atau lebih tinggi, gunakan
-
num_results(opsional): Konstanta bilangan bulat, jumlah maksimum rekaman yang akan dikembalikan. Default ke 10. -
query_type(opsional): Jenis pencarian yang ingin Anda lakukan pada indeks pencarian vektor Anda. Default keANNjika tidak ditentukan secara eksplisit.-
query_typeJika adalahANN, maka atauquery_textquery_vectorharus ditentukan untuk melakukan perkiraan pencarian tetangga terdekat atau pencarian kesamaan. -
query_typeJika adalahHYBRID, makaquery_textharus ditentukan. Anda dapat menentukan danquery_textquery_vectoruntuk pencarian hibrid. Pencarian hibrid dalam instans ini berarti kombinasi pencarian kesamaan dan pencarian kata kunci di mana pencarian kata kunci menggunakan teks harfiah sebagai target.
-
Tabel berikut ini meringkas argumen mana yang dapat digunakan saat Anda memiliki indeks Sinkronisasi Delta dengan model penyematan:
query_type |
query_text |
query_vector |
Description |
|---|---|---|---|
| ANN (juga dikenal sebagai perkiraan pencarian tetangga atau kesamaan terdekat) | ✓ |
|
|
| ANN (juga dikenal sebagai perkiraan pencarian tetangga atau kesamaan terdekat) | ✓ | Gunakan query_vector untuk pencarian kesamaan. |
|
| Hibrida | ✓ |
|
|
| Hibrida | ✓ | ✓ | Gunakan query_text untuk pencarian kata kunci dan gunakan query_vector untuk pencarian kesamaan. |
Tabel berikut ini menjelaskan berbagai skenario dan argumen yang dapat digunakan saat Anda memiliki indeks sinkronisasi Delta tanpa model penyematan:
query_type |
query_text |
query_vector |
Description |
|---|---|---|---|
ANN (juga dikenal sebagai perkiraan pencarian tetangga atau kesamaan terdekat) |
✓ | Gunakanquery_vector untuk pencarian kesamaan. Pencarian kesamaan memerlukan vektor penyematan sebagai target pencarian. Karena model penyematan tidak tersedia dalam skenario ini untuk menghitung vektor penyematan, Anda harus menyediakannya. |
|
| Hibrida | ✓ | ✓ | Untuk pencarian hibrid untuk string teks dan vektor tertentu, tentukan dan query_textquery_vector. |
Mengembalikan
Tabel rekaman pencocokan teratas dari indeks. Semua kolom indeks disertakan.
Contoh
Bagian berikut menunjukkan contoh kueri SQL untuk pencarian indeks yang berbeda.
Kueri pencarian hibrid
Contoh pencarian hibrid berikut menggabungkan jenis pencarian berikut untuk menemukan istilah yang disediakan dalam teks atau metadata indeks pencarian vektor:
- Pencarian kesamaan vektor: Untuk menemukan arti semantik serupa untuk
Wi-Fi issues. - Pencarian kata kunci: Untuk menemukan
Wi-Fi issues LMP-9R2indeks kata kunci.
SELECT * FROM vector_search(
index => 'main.support_docs.index',
query_text => 'Wi-Fi issues LMP-9R2',
query_type => 'HYBRID',
num_results => 3)
| doc_id | title | product_code |
|---|---|---|
| 1403 | Panduan Pemecahan Masalah Wi-Fi — LMP-9R2 | LMP-9R2 |
| 1332 | Masalah Konektivitas yang Diketahui untuk Perangkat LMP-9R2 | LMP-9R2 |
| 1271 | Panduan Pemecahan Masalah Wi-Fi Umum | LMP-8R2 |
Contoh pencarian hibrid berikut menentukan dan query_textquery_vector untuk istilah , Wi-Fi issues LMP-9R2. Dalam contoh ini, pencarian kata kunci berkinerja lebih baik pada istilah kepemilikan yang unik untuk perusahaan (seperti "LMP-9R2" dalam hal ini), sedangkan pencarian vektor, yang biasanya dilatih pada himpunan data publik, tidak mengenali istilah seperti "LMP-9R2."
SELECT * FROM vector_search(
index => 'main.support_docs.index',
query_text => 'Wi-Fi issues LMP-9R2',
query_vector => array( 0.0213, 0.1045, 0.0871, 0.0562, 0.1459, ... 0.0131),-- a self computed embedding of the `query_text` param
query_type => 'HYBRID',
num_results => 3 )
| doc_id | title | product_code |
|---|---|---|
| 1403 | Panduan Pemecahan Masalah Wi-Fi — LMP-9R2 | LMP-9R2 |
| 1332 | Masalah Konektivitas yang Diketahui untuk Perangkat LMP-9R2 | LMP-9R2 |
| 1271 | Panduan Pemecahan Masalah Wi-Fi Umum | LMP-8R2 |
Kueri teks pada indeks dengan kolom sumber penyematan
Cari di atas indeks SKU produk untuk menemukan produk serupa berdasarkan nama. Contoh berikut menggunakan query_text yang hanya didukung dalam Databricks Runtime 15.3 ke atas. Untuk Databricks Runtime 15.2 ke bawah, gunakan query alih-alih query_text.
SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query_text => "iphone", num_results => 2)
| ID | Nama produk |
|---|---|
| 10 | iPhone |
| 20 | iPhone SE |
Contoh berikut mencari beberapa istilah secara bersamaan dengan menggunakan subkueri LATERAL.
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 |
query_id | 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 |
Kueri teks pada indeks dengan kolom sumber penyematan
Cari pada indeks gambar dengan penyematan yang telah dihitung sebelumnya untuk menemukan gambar serupa melalui penyematan. Contoh berikut menggunakan query_vector yang hanya didukung dalam Databricks Runtime 15.3 ke atas. Untuk Databricks Runtime 15.2 ke bawah, gunakan query alih-alih query_vector.
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)
| Id | nama_gambar | penyematan gambar |
|---|---|---|
| 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] |
Contoh berikut mencari beberapa istilah secara bersamaan dengan menggunakan subkueri LATERAL.
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 | cari.nama_gambar | pencarian_penyematan_gambar |
|---|---|---|---|
| [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] |
Batasan
Batasan berikut berlaku selama pratinjau:
- Jenis indeks kueri
DIRECT_ACCESStidak didukung. - Parameter input
filters_jsonataucolumnstidak didukung. - Pencarian Vektor dengan
num_resultslebih dari 100 tidak didukung. -
vector_searchtidak dapat digunakan dengan model yang melayani titik akhir menggunakan throughput yang disediakan API Model Foundation.