Megosztás a következőn keresztül:


A vector_search függvény

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet 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

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: Egy STRING á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 rendelkeznie Select az 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 egy STRING kifejezésként kell megadnia a keresendő sztringet az indexben.
    • A Databricks Runtime 15.3 vagy újabb verziójával a query_vector segí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 vektor ARRAY<FLOAT>vagy ARRAY<DOUBLE>vagy ARRAY<DECIMAL(_, _)> kifejezésének kell lennie az indexben való kereséshez.
    • A Databricks Runtime 15.2 vagy újabb verziójában a query használatával adja meg az indexben keresni kívánt sztringet.
  • 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, ANN ha nincs explicit módon megadva.
    • Ha az query_type , ANN akkor vagy query_text meg kell adni, vagy query_vector meg kell adni a legközelebbi szomszédkeresés vagy hasonlóság kereséséhez.
    • Ha az query_type , HYBRIDakkor query_text meg kell adni. Megadhatja mind a hibrid keresést, mind query_textquery_vector a 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.

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)
  • Egy adott szöveg- vagy vektorsztring hasonlósági kereséséhez megadhatja query_text.
  • A beágyazás automatikusan kiszámolható a query_texthasonlóság kereséséhez, ezért nem kell megadni query_vector.
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
  • Kulcsszókereséshez használható query_text . A kulcsszókeresés a szó szerinti szöveget használja célként, ezért query_text szükséges.
  • A beágyazás automatikusan kiszámolható a query_texthasonlóság kereséséhez, ezért nem kell megadni query_vector.
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_ACCESS nem támogatott.
  • A bemeneti paraméterek filters_json vagy columns nem támogatottak.
  • A num_results 100-nál nagyobb vektorkeresés nem támogatott.
  • vector_search nem használható olyan végpontok esetén, amelyek foundation model API-k által kiosztott átviteli kapacitást használnak.