vector_search
函数
适用于: Databricks SQL
重要
此功能目前以公共预览版提供。
使用 vector_search()
函数,可以使用 SQL 查询 Mosaic AI 矢量搜索索引。
要求
- 此函数在经典 SQL 仓库中不可用。
- 有关详细信息,请参阅Databricks SQL 定价页。
- 此函数已在支持 Mosaic AI 矢量搜索的区域开放。
语法
vector_search(index, query, num_results)
参数
所有参数都必须按名称传递,例如vector_search(index => indexName, query => queryText)
。
index
:STRING
常量,同一工作区中现有矢量搜索索引的完全限定名称,用于调用。 定义者必须对索引具有“选择”权限。query
:STRING
表达式,在索引中搜索的字符串。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_json
或columns
。 - 不支持
num_results
大于 100 的矢量搜索。 - 对源表没有 READ 访问权限的用户无法使用
vector_search()
。 vector_search
不能与使用 Foundation Model API 预置吞吐量的模型服务终结点一起使用。