DOCUMENTATION
/
语言
English
中文
开始使用
指南
开发者
参考
版本说明
教程
状态
前往 https://china-status.snowflake.com 查看状态详细信息
  1. 概述
    • Snowflake Horizon 目录
      • 连接到 Snowflake 的应用程序和工具
      • 虚拟仓库
      • 数据库、表和视图
      • Data types
        • 数据集成
          1. Snowflake Openflow
          2. Apache Iceberg™
            1. Apache Iceberg™ 表
            2. Snowflake Open Catalog
        • Data engineering
          1. 数据加载
          2. 动态表
          3. Streams and tasks
          4. Row timestamps
            • DCM Projects
            • dbt Projects on Snowflake
            • 数据卸载
          5. Storage lifecycle policies
          6. Migrations
          7. 查询
          8. 列表
          9. Collaboration
          10. Snowflake AI 和 ML
              1. 跨区域推理
                • Opt out of AI features
                  • Cortex AI Guardrails
                    • Snowflake Intelligence
                    • Cortex Code
                    • Cortex AI Functions
                    • Cortex Agents
                    • Snowflake-managed MCP server
                      • Cortex Analyst
                      • Cortex Search
                          1. 查询 Cortex Search 服务
                            • Replicate a Cortex Search Service
                              • Customize Cortex Search Scoring
                                • 了解成本
                                  • Batch Cortex Search
                                    • Monitor Cortex Search requests
                                      • 教程
                                  • Cortex Knowledge Extensions
                                  • Cortex REST API
                                  • AI 可观察性
                                  • ML 函数
                                  • Provisioned Throughput
                                    • ML 开发和 ML Ops
                                  • Snowflake Postgres
                                  • 警报和通知
                                  • 安全
                                  • 数据治理
                                  • 隐私
                                  • 组织和账户
                                  • 业务连续性和数据恢复
                                  • Performance optimization
                                  • 成本和计费
                                  指南Snowflake AI 和 MLCortex SearchBatch Cortex Search

                                  Batch Cortex Search¶

                                  黑色 Snowflake 徽标(无文字) 预览版功能 – 开放

                                  适用于所有账户。

                                  功能支持的区域

                                  此功能在中华人民共和国不可用。

                                  Batch Cortex Search 函数是一个表函数,可让您向 Cortex Search Service 提交一批查询。它适用于具有高吞吐量要求的离线用例,例如实体解析、删除重复项或群集任务。

                                  使用 CORTEX_SEARCH_BATCH 函数提交到 Cortex Search Service 的作业会利用额外的计算资源,从而提供比交互式 API 搜索查询界面(Python、REST 或 SEARCH_PREVIEW)显著更高的吞吐量(每秒查询数)。

                                  语法¶

                                  使用以下语法,通过 CORTEX_SEARCH_BATCH 表函数以批处理模式查询 Cortex Search Service:

                                  SELECT
                                      q.query,
                                      r.*
                                  FROM query_table AS q,
                                  LATERAL CORTEX_SEARCH_BATCH(
                                      service_name => '<database>.<schema>.<cortex_search_service>',
                                      query => q.query,                   -- optional STRING
                                      multi_index_query => q.miq,         -- optional VARIANT
                                      filter => q.filter,                 -- optional VARIANT
                                      limit => 10,                        -- optional INT
                                      options => q.options                -- optional VARIANT
                                  ) AS r;
                                  

                                  参数¶

                                  CORTEX_SEARCH_BATCH 函数支持以下参数:

                                  ``service_name``(字符串,必填)

                                  要查询的 Cortex Search Service 的完全限定名称。

                                  ``query``(字符串,可选)

                                  包含用于搜索服务的查询字符串的列。

                                  ``multi_index_query``(变体,可选)

                                  一个对象,指定一个或多个向量或关键字查询输入,以根据服务索引进行搜索。请参阅 multi_index_query,了解有关如何构造此参数的详细信息。

                                  备注

                                  出于性能原因,multi_index_query 目前最多支持查询数组中的一个向量索引条目。

                                  ``filter``(变体,可选)

                                  包含要应用于搜索结果的筛选器对象的列。

                                  ``limit``(整数,可选)

                                  每个查询返回的最大结果数。默认值:None。10.

                                  ``options``(变体,可选)

                                  包含 VARIANT 对象的列,带有可选的每查询设置。支持的顶级键包括:

                                  • scoring_config``(对象,可选):结构与交互式 Cortex Search 查询(Python、REST 或 ``SEARCH_PREVIEW)的 scoring_config 参数相同。使用它来为该行的批量查询自定义排名。请参阅 Customizing Cortex Search scoring。

                                  • ``replicas``(整数,可选):为该行批量查询提供服务的搜索索引副本数量。默认值:None。2.较高的值可以提高吞吐量,但服务成本也会随副本数量成比例增加。

                                  • ``experimental``(对象,可选):为实验性或预览性搜索行为保留的对象。字段和语义可能会发生变化,恕不另行通知。仅在 Snowflake 文档或支持团队指示您设置特定键时使用。

                                  备注

                                  必须至少指定 query、multi_index_query 或 filter 之一。

                                  使用说明¶

                                  • 批量搜索函数的吞吐量可能会有所不同,具体取决于查询的 Cortex Search Service 中索引的数据量和搜索查询的复杂性。对少量查询运行该函数,以测量特定工作负载的吞吐量。一般来说,对具有更多筛选条件的较大服务的查询会导致较低的吞吐量。

                                  • 批量搜索功能的吞吐量(即每秒处理的搜索查询数)不受用于查询的仓库大小的影响。

                                  • 由于批量搜索会启动专用资源来为每个作业提供服务,因此会产生额外的启动延迟。如果您需要运行的查询少于 2,000 个,通常可以使用交互式 Cortex Search API 更快地获得结果(Python 或 REST API),而不是使用批量搜索。

                                  • 与交互式 Cortex Search API 不同,批量搜索功能可以查询当前暂停提供的服务。

                                  • 可以同时以交互和批处理模式查询单个 Cortex Search Service ,而不会降低交互查询性能或吞吐量。单独的计算资源用于提供交互式查询和批处理查询。

                                  成本注意事项¶

                                  批量搜索的成本由三个部分组成:

                                  服务成本

                                  根据搜索索引数据的大小和批量搜索作业的持续时间(不包括启动时间)收费。该费用还反映了 options 中的 replicas 值(默认为 2);请参阅上方的 replicas 选项。

                                  查询嵌入成本

                                  根据输入查询结果嵌入的词元数量收费。与交互式 Cortex Search 不同,批量搜索的查询嵌入不是免费的。

                                  虚拟仓库

                                  用于运行批处理作业的虚拟仓库计算费用。

                                  有关使用情况跟踪,请参阅 CORTEX_SEARCH_BATCH_QUERY_USAGE_HISTORY Account Usage 视图。有关 Cortex Search 成本的更多信息,请参阅 成本注意事项。

                                  区域可用性¶

                                  批处理搜索在所有提供 Cortex Search 的区域均可用。请参阅 区域可用性 获取有关受支持区域的完整列表。

                                  示例用法¶

                                  在此示例中,将用户提交的订单中的产品与“黄金”产品目录进行匹配。CORTEX_SEARCH_BATCH 调用使用 options,因此在计算嵌入时不带默认搜索查询前缀;请参阅 Disabling query prefix for vector embeddings。仅在评估了对结果质量的影响后,再使用该设置。

                                  -- Create the golden product catalog with canonical product names
                                  CREATE OR REPLACE TABLE golden_catalog (product_name TEXT);
                                  INSERT INTO golden_catalog VALUES
                                    ('Wireless Bluetooth Headphones'),
                                    ('Wireless Noise-Canceling Earbuds'),
                                    ('USB-C Charging Cable 6ft'),
                                    ('Portable Power Bank 10000mAh');
                                  
                                  -- Create Cortex Search Service on the golden catalog
                                  CREATE CORTEX SEARCH SERVICE golden_product_service
                                  ON product_name
                                  WAREHOUSE = <warehouse_name>
                                  TARGET_LAG = '1 day'
                                  AS
                                  SELECT product_name FROM golden_catalog;
                                  
                                  -- Create a table of user-submitted products (may contain variations or typos)
                                  CREATE OR REPLACE TABLE submitted_products (product TEXT);
                                  INSERT INTO submitted_products VALUES
                                    ('bluetooth headphones wireless'),
                                    ('usb c cable');
                                  
                                  -- For each user-submitted product, query the service for the two closest golden results
                                  SELECT
                                    q.product, s.*
                                  FROM submitted_products AS q,
                                  LATERAL CORTEX_SEARCH_BATCH(
                                      service_name => 'golden_product_service',
                                      query => q.product,
                                      limit => 2,
                                      options => OBJECT_CONSTRUCT(
                                          'scoring_config', OBJECT_CONSTRUCT(
                                              'disable_vector_embedding_query_prefix', true
                                          )
                                      )
                                  ) AS s;
                                  

                                  以下示例使用 multi_index_query 提交预先计算的嵌入作为查询输入,而不是原始文本。此处,源表 my_db.my_schema.product_embeddings 包含具有预先计算向量的 embedding 列,而 Cortex Search Service my_db.my_schema.golden_product_service 是使用自带向量 (BYOV) 配置创建的。有关构造的详细信息 multi_index_query,请参阅 multi_index_query。

                                  SELECT
                                      q.product_name,
                                      s.*
                                  FROM (
                                      SELECT
                                          product_name,
                                          embedding::ARRAY AS emb_arr
                                      FROM my_db.my_schema.product_embeddings
                                      LIMIT 100000
                                  ) q,
                                  LATERAL CORTEX_SEARCH_BATCH(
                                      service_name => 'my_db.my_schema.golden_product_service',
                                      multi_index_query => OBJECT_CONSTRUCT(
                                          'EMBEDDING', ARRAY_CONSTRUCT(
                                              OBJECT_CONSTRUCT('vector', q.emb_arr)
                                          )
                                      ),
                                      limit => 5
                                  ) s;
                                  

                                  此页面是否有帮助?

                                  访问 Snowflake
                                  分享您的反馈
                                  隐私策略服务条款
                                  © 2026 Snowflake 保留所有权利.@北京神州数码云计算有限公司版权所有.
                                  1. 语法
                                  2. 参数
                                  3. 使用说明
                                  4. 成本注意事项
                                  5. 区域可用性
                                  6. 示例用法
                                  1. Cortex Search
                                  2. 查询 Cortex Search 服务
                                  3. Customizing Cortex Search scoring
                                  4. CREATE CORTEX SEARCH SERVICE