Fonction vector_search
S’applique à : Databricks SQL
Important
Cette fonctionnalité est disponible en préversion publique.
La fonction vector_search()
vous permet d’interroger un index de recherche vectorielle d’IA mosaïque à l’aide de SQL.
Spécifications
- Cette fonction n’est pas disponible sur les entrepôts SQL classiques.
- Pour plus d’informations, consultez la page de tarification Databricks SQL.
- Cette fonction est disponible dans les régions où Mosaic AI Vector Search est pris en charge.
Syntaxe
vector_search(index, query, num_results)
Arguments
Tous les arguments doivent être passés par nom, comme vector_search(index => indexName, query => queryText)
.
index
: une constanteSTRING
, nom complet d’un index de recherche vectorielle existant dans le même espace de travail pour les appels. Le définisseur doit disposer de l’autorisation « Sélectionner » sur l’index.query
: une expressionSTRING
, la chaîne à rechercher dans l’index.num_results
(facultatif) : une constante d'un nombre entier, le nombre maximum d'enregistrements à renvoyer. La valeur par défaut est 10.
Retours
Un tableau des enregistrements correspondants principaux de l’index. Toutes les colonnes de l’index sont incluses.
Exemples
Recherchez sur un index des références SKU de produit pour rechercher des produits similaires par nom.
SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query => "iphone", num_results => 2)
id | Nom du produit |
---|---|
10 | iPhone |
20 | iPhone SE |
L’exemple suivant recherche plusieurs termes en même temps à l’aide d’une sous-requête LATERAL.
SELECT
query_txt,
query_id,
search.*
FROM
query_table,
LATERAL(
SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query => 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 |
pixel 8 | 2 | 30 | Pixel 8 |
pixel 8 | 2 | 40 | Pixel 8a |
Limites
Les limitations suivantes s’appliquent pendant la préversion :
- L’interrogation des types d’index
DIRECT_ACCESS
n’est pas prise en charge. - Les index avec
embedding_vector_columns
ne sont pas pris en charge. - Les paramètres d’entrée
filters_json
oucolumns
ne sont pas pris en charge. - La recherche vectorielle dont
num_results
est supérieure à 100 n’est pas prise en charge. - Les utilisateurs qui n’ont pas accès en LECTURE à la table source ne peuvent pas utiliser
vector_search()
. vector_search
ne peut pas être utilisé avec des points de terminaison de service de modèle à l’aide du débit provisionné des API Foundation Model.