- 类别:
:doc:`/sql-reference/functions-string`(大型语言模型)
SEARCH_PREVIEW (SNOWFLAKE.CORTEX)¶
给定 Cortex Search 服务名称和查询,从指定的服务返回响应。
语法¶
SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
'<service_name>',
'<query_parameters_object>'
)
实参¶
service_name
Cortex Search 服务的名称。如果服务位于与当前会话不同的架构中,则使用完全限定名称。
query_parameters_object
STRING 包含 JSON 对象,该对象指定用于调用服务的查询参数。
键
类型
描述
默认值
query
字符串
您的搜索查询,用于搜索服务中的文本列。
这是必需的。
columns
数组
列的以逗号分隔列表,用于返回响应中每个相关结果的列。这些列必须包含在服务的源查询中。
创建服务时指定的搜索列。
filter
对象
筛选对象,用于根据
ATTRIBUTES
列中的数据筛选结果。有关详细语法,请参阅 筛选器语法。空对象
limit
整数
要在响应中返回的最大结果数。
10
筛选器语法¶
Cortex Search 支持对 CREATE CORTEX SEARCH SERVICE 命令中指定的 ATTRIBUTES 列进行筛选。
Cortex Search 支持四种匹配运算符:
字符串相等:
@eq
数组包含:
@contains
日期/时间戳大于或等于:
@gte
日期/时间戳小于或等于:
@lte
这些匹配运算符可以由各种逻辑运算符组成:
@and
@or
@not
@gte
和 @lte
运算符可以在类型为 DATE
或 TIMESTAMP
(日期和时间数据类型) 的 ATTRIBUTES 上运算,并接受以下形式的值:YYYY-MM-DD
,时区感知日期则为:YYYY-MM-DD+HH:MM
。如果未指定时区偏移量,则以 UTC 解析日期。@gte
和 @lte
运算符包含指定的值。
这些运算符可以组合成一个筛选器对象。示例如下:
筛选字符串类列
string_col
等于值value
的行。{ "@eq": { "string_col": "value" } }
筛选 ARRAY 列
array_col
包含值value
的行。{ "@contains": { "array_col": "arr_value" } }
在 TIMESTAMP 列
timestamp_col
处于2024-11-19
和 ``2024-12-19``(含)之间的行上进行筛选。{ "@and": [ { "@gte": { "timestamp_col": "2024-11-19" } }, { "@lte": { "timestamp_col": "2024-12-19" } } ]}
用逻辑运算符组成筛选器:
// Rows where the "array_col" column contains "arr_value" and the "string_col" column equals "value": { "@and": [ { "@contains": { "array_col": "arr_value" } }, { "@eq": { "string_col": "value" } } ] } // Rows where the "string_col" column does not equal "value" { "@not": { "@eq": { "string_col": "value" } } } // Rows where the "array_col" column contains at least one of "val1", "val2", or "val3" { "@or": [ { "@contains": { "array_col": "val1" } }, { "@contains": { "array_col": "val1" } }, { "@contains": { "array_col": "val1" } } ] }
返回¶
使用说明¶
与使用 Python API 相比,此函数会带来更多延迟。其设计仅用于测试/验证目的。您不应该使用此函数在需要低延迟的最终用户应用程序中提供搜索查询。
此函数仅对字符串字面量查询进行操作。它不接受一批文本数据。
示例¶
此示例使用 test query
查询名为 sample_service
的服务。该示例返回五个结果(最多),并包括 col1
和 col2
列中的数据。
SELECT
SNOWFLAKE.CORTEX.SEARCH_PREVIEW (
'mydb.mysch.sample_service',
'{
"query": "test query",
"columns": ["col1", "col2"],
"limit": 3
}'
);
{
"results":[
{"col1":"text", "col2":"text"},
{"col1":"text", "col2":"text"},
{"col1":"text", "col2":"text"}
],
"request_id":"a27d1d85-e02c-4730-b320-74bf94f72d0d"
}