vector_search
関数
適用対象: Databricks SQL
重要
この機能はパブリック プレビュー段階にあります。
vector_search()
関数を使用すると、SQL を使用して Mosaic AI ベクトル検索インデックスでクエリを実行できます。
要件
- この関数は、従来の SQL ウェアハウスでは使用できません。
- 詳細については、「Databricks SQL の価格ページ」を参照してください。
- この機能は、モザイク AI ベクトル検索がサポートされているリージョンで使用できます。
構文
vector_search(index, query, num_results)
引数
vector_search(index => indexName, query => queryText)
のように、すべての引数を名前で渡す必要があります。
index
:STRING
定数。呼び出し用の同じワークスペース内の既存のベクトル検索インデックスの完全修飾名。 定義者には、インデックスに対する “Select” の権限が必要です。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 より大きいベクトル検索はサポートされていません。- ソース テーブルへの読み取りアクセスを持たないユーザーは、
vector_search()
を使用できません。 vector_search
は、Foundation Model API のプロビジョニングされたスループットを使用してエンドポイントにサービスを提供するモデルでは使用できません。