您在此处:
使用查询 API 运行向量搜索
使用查询 API 在 Data 360 中运行向量搜索。将这些示例用作起点。
您可以使用 Data 360 SQL 编写自定义向量搜索语句。通过 Data 360 查询 API,您可以在自定义应用程序中使用这些 SQL 语句。
基本矢量搜索
此语法在索引数据模型对象 (DMO) 中执行向量搜索,以查找定义的字符串。
SELECT *
FROM vector_search(TABLE(<Your_Vector_Embedding DMO>),
'<Search_String>',
'<PreFilteringColumn><Operator>"<Value>"',
'<k=topK results>'
)位置:
- <Your_Vector_Embedding>
- 索引 DMO 的 API 名称。
- Search_String
- 向量搜索的搜索字符串。
- PrefilteringColumn
一种布尔表达式,用于筛选主键字段的标量字段以限制搜索。有关预筛选的更多信息,请查看向量搜索查询表达式和预筛选。
- k=topK_results
- 要返回的最相似结果的数量。
带有索引和块 DMO 的矢量搜索
此语法在索引 DMO 和块 DMO 中执行向量搜索。
SELECT
v.score__c AS Score__c,
c.chunk__c AS Chunk__c
FROM
vector_search(
TABLE(<Your_Vector_Embedding_DMO>),
'<Search_String>',
'language = \'English\' AND status = \'active\'',
10
) v
JOIN
<Your Chunk DMO> c ON v.RecordId__c = c.RecordId__c
AND c.KQ_RecordId__c IS NOT DISTINCT FROM v.KQ_RecordId__c
ORDER BY 1
LIMIT 10
位置:
- Score__c
- 每个向量与输入搜索字符串的相似性分数。
- Chunk__c
- 用于生成矢量嵌入的块。
- language=\'English\' AND status=\'active\'
- 带有两个筛选器的预筛选示例。这些筛选器使用逻辑
AND运算符组合。 - 10
- 返回前 10 个结果。
- <您的块 DMO>
- 块 DMO 的 API 名称。
- RecordId__c 和 KQ_RecordId__c
- join 语句在 RecordID 和密钥限定记录 ID 上匹配,同时避免 NULL 值。在联接 DMO 和 DLO 时,使用密钥限定符以避免 ID 重叠。
使用 DMO 和非结构化数据模型对象进行矢量搜索 (UDMO)
此示例执行矢量搜索,检索相关文本块及其分数,为块提供源文档的文件路径,并返回前 10 个结果。
SELECT
v.score__c AS Score__c,
c.chunk__c AS Chunk__c,
u.FilePath__c AS FilePath__c
FROM
vector_search(TABLE(<Your Vector_Embedding DMO>), '<Search String>', '', 10) v
JOIN
<Your_Chunk_DMO> c ON v.RecordId__c = c.RecordId__c
AND c.KQ_RecordId__c IS NOT DISTINCT FROM v.KQ_RecordId__c
JOIN
<Your_UDMO> u ON c.SourceRecordId__c = u.FilePath__c
ORDER BY 1 DESC
LIMIT 10;
位置:
- Your_UDMO
- 用于创建块的 UDMO 的 API 名称。
- FilePath__c
- 用于创建块和矢量嵌入的每个文件的相对路径。
- 矢量搜索查询表达式和预筛选
使用预筛选字段增强向量搜索查询。使用逻辑运算符并管理字段名称和值的大小写区分,以确保精确的数据检索。

