- 类别:
:doc:`/sql-reference/functions-string`(AI 函数)
SEARCH_PREVIEW (SNOWFLAKE.CORTEX)¶
给定 Cortex Search 服务名称和查询,从指定的服务返回响应。
语法¶
实参¶
service_nameCortex Search 服务的名称。如果服务位于与当前会话不同的架构中,则使用完全限定名称。
query_parameters_objectSTRING 包含 JSON 对象,该对象指定用于调用服务的查询参数。
键
类型
描述
默认值
query字符串
您的搜索查询,用于搜索服务中的文本列。
这是必需的。
columns数组
列的以逗号分隔列表,用于返回响应中每个相关结果的列。这些列必须包含在服务的源查询中。
创建服务时指定的搜索列。
filter对象
筛选对象,用于根据
ATTRIBUTES列中的数据筛选结果。有关详细语法,请参阅 筛选器语法。空对象
limit整数
要在响应中返回的最大结果数。
10
筛选器语法¶
Cortex Search 支持对 CREATE CORTEX SEARCH SERVICE 命令中指定的 ATTRIBUTES 列进行筛选。
Cortex Search 支持五种匹配运算符:
ARRAY 包含运算符:
@containsNUMERIC 或 DATE/TIMESTAMP 大于或等于运算符:
@gteNUMERIC 或 DATE/TIMESTAMP 小于或等于运算符:
@lte主键 相等性:
@primarykey
这些匹配运算符可以由各种逻辑运算符组成:
@and@or@not
以下使用说明适用:
定点 数值若超过 19 位(不含前导零)时,无法与
@eq、@gte或@lte运算符兼容,这些运算符将不会返回此类数值。例如,如果源查询中存在一个很大的值,使用
@eq匹配该精确值将不返回任何结果。通过使用
@not,整体过滤器仍可能返回这些大值(例如,虽然@eq X对于某些大数值 X 不返回任何值,但@not @eq Y会将其返回)。
TIMESTAMP和DATE筛选器接受YYYY-MM-DD形式的值,对于时区感知型日期,可接受:YYYY-MM-DD+HH:MM。如果未指定时区偏移量,则以 UTC 解析日期。@primarykey仅适用于配置了 主键 的服务。筛选器的值必须为 JSON 对象,且需将每个主键列映射到其对应的值(或NULL)。
这些运算符可以组合成一个筛选器对象。
示例¶
筛选字符串类列
string_col等于值value的行。筛选到具有指定主键的行。
筛选 ARRAY 列
array_col包含值value的行。在 NUMERIC 列
numeric_col处于 10.5 和 12.5(含)之间的行上进行筛选:在 TIMESTAMP 列
timestamp_col处于2024-11-19和 ``2024-12-19``(含)之间的行上进行筛选。用逻辑运算符组成筛选器:
返回¶
返回 OBJECT,其中包含 Cortex Search 服务的查询结果和唯一请求 ID。请参阅 `示例`_ 中的示例输出。
使用说明¶
此函数专为测试和验证而设计,其产生的延迟高于使用 REST 或 Python APIs。在需要低延迟的最终用户应用程序中,请使用其他方法提供搜索查询服务。
此函数仅对常量实参进行操作。它不接受表列作为输入。
如果搜索结果超过 300kB,此函数将截断结果。REST 界面允许的最大响应大小为 10MB。
示例¶
此示例使用 test query 查询名为 sample_service 的服务。该示例返回五个结果(最多),并包括 col1 和 col2 列中的数据。