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-ban és újabb verziókban query_text vagy query_vector megadhatja, hogy mit keressen az indexben.

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

A Databricks Runtime 15.2-ben és korábbi verziókban a query segítségével adhatja meg, 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 "Kiválasztás" engedéllyel kell rendelkeznie 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.

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.

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)
ID (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 search.id 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.