Partager via


Fonction vector_search

S’applique à : coche marquée oui 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

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 constante STRING, 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 expression STRING, 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 ou columns 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.