vector_search 函数

适用于: 勾选“是” Databricks SQL

重要

此功能目前以公共预览版提供。

使用vector_search()函数,可以使用 SQL 查询Mosaic AI 矢量搜索索引。

要求

语法

vector_search(index, query, num_results)

参数

所有参数都必须按名称传递,例如vector_search(index => indexName, query => queryText)

  • indexSTRING常量,同一工作区中现有矢量搜索索引的完全限定名称,用于调用。 定义者必须对索引具有“选择”权限。
  • querySTRING表达式,在索引中搜索的字符串。
  • num_results(可选):整数常量,要返回的最大记录数。 默认值为 10。

返回

索引中排名靠前的匹配记录的表。 包含索引的所有列。

示例

搜索产品 SKU 的索引,以按名称查找类似产品。


SELECT * FROM VECTOR_SEARCH(index => "main.db.my_index", query => "iphone", num_results => 2)
ID 产品名称
10 iPhone
20 iPhone SE

以下示例使用 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

限制

预览期间存在以下限制:

  • 不支持查询DIRECT_ACCESS索引类型。
  • 不支持具有embedding_vector_columns的索引。
  • 不支持输入参数filters_jsoncolumns
  • 不支持num_results 大于 100 的矢量搜索。
  • 对源表没有 READ 访问权限的用户无法使用 vector_search()
  • vector_search 不能与使用基础模型 API 预配吞吐量的模型服务终结点一起使用。