Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A
A következőkre vonatkozik:
Databricks SQL
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el.
A vector_search() függvény lehetővé teszi a Mozaik AI Vector Search-index lekérdezését AZ SQL használatával.
Követelmények
- Ez a függvény nem érhető el a klasszikus SQL-raktárakban.
- További információt a Databricks SQL díjszabási oldalán talál.
- Ez a függvény régiókban érhető el, ahol a Mozaik AI Vector Search támogatott.
Szintaxis
A Databricks Runtime 15.3-s vagy újabb verziójában használja query_text vagy query_vector adja meg, hogy mit keressen az indexben.
SELECT * FROM vector_search(
index,
{ query_text | query_vector },
[ num_results ]
)
A Databricks Runtime 15.2-ben és alatta adja meg, query hogy mit keressen az indexben.
SELECT * FROM vector_search(
index, query, num_results
)
Argumentumok
Minden argumentumot név szerint kell átadni, például vector_search(index => indexName, query_text => queryText).
-
index: EgySTRINGállandó, a meglévő vektorkeresési index teljesen kvalifikált neve ugyanazon munkaterületen a meghívásokhoz. A definiálónak engedéllyel kell rendelkeznieSelectaz indexen. - Az alábbiak egyikével adja meg az indexben keresni kívánt kifejezést:
- A Databricks Runtime 15.3 vagy frissebb verzióját használva keressen egy adott szövegsztringet a
query_textbeágyazási forrásoszlopában a segítségével. A lekérdezésnek egySTRINGkifejezésként kell megadnia a keresendő sztringet az indexben. - A Databricks Runtime 15.3 vagy újabb verziójával a
query_vectorsegítségével kereshet egy adott vektort a Delta Sync Index beágyazási vektoroszlopában. Ez az argumentum szükséges a deltaszinkronizálási index ön által felügyelt vektorok használatával történő kereséséhez. A lekérdezésnek a beágyazási vektorARRAY<FLOAT>vagyARRAY<DOUBLE>vagyARRAY<DECIMAL(_, _)>kifejezésének kell lennie az indexben való kereséshez. - A Databricks Runtime 15.2 vagy újabb verziójában a
queryhasználatával adja meg az indexben keresni kívánt sztringet.
- A Databricks Runtime 15.3 vagy frissebb verzióját használva keressen egy adott szövegsztringet a
-
num_results(nem kötelező): Egész számállandó, a visszaadandó rekordok maximális száma. Alapértelmezés szerint 10. -
query_type(nem kötelező): A vektorkeresési indexen végrehajtandó keresés típusa. Alapértelmezés szerint,ANNha nincs explicit módon megadva.- Ha az
query_type,ANNakkor vagyquery_textmeg kell adni, vagyquery_vectormeg kell adni a legközelebbi szomszédkeresés vagy hasonlóság kereséséhez. - Ha az
query_type,HYBRIDakkorquery_textmeg kell adni. Megadhatja mind a hibrid keresést, mindquery_textquery_vectora hibrid keresést. Ebben a példában a hibrid keresés a hasonlóság keresésének és a kulcsszókeresésnek a kombinációját jelenti, ahol a kulcsszókeresés a szó szerinti szöveget használja célként.
- Ha az
Az alábbi táblázat összefoglalja, hogy mely argumentumok használhatók a Delta Sync-index beágyazási modellel való használatakor:
query_type |
query_text |
query_vector |
Description |
|---|---|---|---|
| ANN (más néven közelítő szomszéd vagy hasonlósági keresés) | ✓ |
|
|
| ANN (más néven közelítő szomszéd vagy hasonlósági keresés) | ✓ | Hasonlósági kereséshez használható query_vector . |
|
| Hibrid | ✓ |
|
|
| Hibrid | ✓ | ✓ | Kulcsszókereséshez query_text és hasonlósági kereséshez használható query_vector . |
Az alábbi táblázat a különböző forgatókönyveket és argumentumokat ismerteti, amelyek akkor használhatók, ha Delta szinkronizálási indexe van beágyazási modell nélkül :
query_type |
query_text |
query_vector |
Description |
|---|---|---|---|
ANN (más néven közelítő szomszéd vagy hasonlósági keresés) |
✓ | Hasonlósági kereséshez használhatóquery_vector . A hasonlósági kereséshez beágyazási vektorra van szükség keresési célként. Mivel ebben a forgatókönyvben nem érhető el beágyazási modell a beágyazási vektor kiszámításához, meg kell adnia. |
|
| Hibrid | ✓ | ✓ | Egy adott szövegsztring és egy vektor hibrid kereséséhez adja meg mind a kettőt, mind query_textquery_vectora . |
Visszatérések
Az index legfelső egyező rekordjainak táblázata. A rendszer az index összes oszlopát tartalmazza.
Példák
Az alábbi szakaszok a különböző indexkeresésekhez tartozó SQL-lekérdezéseket mutatják be.
Hibrid keresési lekérdezések
A következő hibrid keresési példa a következő keresési típusokat kombinálja a megadott kifejezések kereséséhez a vektorkeresési index szövegében vagy metaadataiban:
- Vektoros hasonlóság keresése: Hasonló szemantikai jelentés keresése a következőhöz
Wi-Fi issues: . - Kulcsszókeresés: Kulcsszóindex keresése
Wi-Fi issues LMP-9R2.
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 | Wi-Fi hibaelhárítási útmutató – LMP-9R2 | LMP-9R2 |
| 1332 | Az LMP-9R2-eszközök ismert csatlakozási problémái | LMP-9R2 |
| 1271 | Általános Wi-Fi hibaelhárítási útmutató | LMP-8R2 |
Az alábbi hibrid keresési példa a kifejezésre és query_text a kifejezésre is query_vector megadja a következőtWi-Fi issues LMP-9R2: . Ebben a példában a kulcsszókeresés jobban teljesít a vállalat számára egyedi védett kifejezéseken (ebben az esetben az "LMP-9R2"), míg a jellemzően nyilvános adathalmazokra betanított vektoros keresés nem ismeri fel az "LMP-9R2" kifejezéseket.
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 | Wi-Fi hibaelhárítási útmutató – LMP-9R2 | LMP-9R2 |
| 1332 | Az LMP-9R2-eszközök ismert csatlakozási problémái | LMP-9R2 |
| 1271 | Általános Wi-Fi hibaelhárítási útmutató | LMP-8R2 |
Szöveges lekérdezések az indexeken a forrásoszlopok beágyazásával
A hasonló termékek név szerinti kereséséhez keressen rá a termékváltozatok indexére. Az alábbi példa query_text használ, amely csak a Databricks Runtime 15.3-ban és újabb verziókban támogatott. A Databricks Runtime 15.2-s és újabb verzióihoz használja a queryquery_texthelyett.
SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query_text => "iphone", num_results => 2)
| azonosító | Terméknév |
|---|---|
| 10 | iPhone |
| 20 | iPhone SE |
Az alábbi példa egyszerre keres több kifejezést egy LATERAL al-lekérdezés használatával.
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 |
lekérdezés_azonosító | keresés.azonosító | keresés.terméknév |
|---|---|---|---|
| iphone | 1 | 10 | iPhone 10 |
| iphone | 1 | 20 | iPhone SE |
| képpont 8 | 2 | 30 | Pixel 8 |
| képpont 8 | 2 | 40 | Pixel 8a |
Szöveges lekérdezések az indexeken a forrásoszlopok beágyazásával
Keresés képek indexében előre kiszámított beágyazásokkal, hogy beágyazás alapján találjon hasonló képeket. Az alábbi példa query_vector használ, amely csak a Databricks Runtime 15.3-ban és újabb verziókban támogatott. A Databricks Runtime 15.2-s és újabb verzióihoz használja a queryquery_vectorhelyett.
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)
| azonosító | kép_név | képelemek beágyazása |
|---|---|---|
| 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] |
Az alábbi példa egyszerre keres több kifejezést egy LATERAL al-lekérdezés használatával.
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
| lekérdezés_beágyazás | keresés.azonosító | keresés.képneve | képbeágyazás keresése |
|---|---|---|---|
| [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 | tájkép.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] |
Korlátozások
Az előzetes verzióban a következő korlátozások érvényesek:
- Az indextípusok lekérdezése
DIRECT_ACCESSnem támogatott. - A bemeneti paraméterek
filters_jsonvagycolumnsnem támogatottak. - A
num_results100-nál nagyobb vektorkeresés nem támogatott. -
vector_searchnem használható olyan végpontok esetén, amelyek foundation model API-k által kiosztott átviteli kapacitást használnak.