EN
Shopify 知识库 · 概念

Search & Discovery:筛选、推荐与搜索设置

说明 Shopify Search & Discovery 应用管理的三类能力:集合与搜索页筛选、商品推荐(related 与 complementary)、搜索设置与商品提升,以及它们与主题、Liquid、Ajax 和 Storefront API 的连接和官方给出的数值上限。

Shopify 的店面搜索基础能力内置在所有在线商店,包括预测搜索与拼写容错;Search & Discovery 是官方应用,在此之上提供三块可配置能力:集合页与搜索结果页的筛选、商品推荐,以及搜索结果类型、商品提升等搜索设置。它解决「顾客怎样在一批商品里缩小范围、发现相关商品」;它不能任意改写搜索排序(官方写明不能直接改变结果顺序,只能通过商品数据和该应用间接影响),也不替代主题实现。

本库哪些内容依赖它

本文是该机制的权威来源,其他文章只写各自页面语境下的用法:

核心对象与概念

对象含义备注
标准筛选Availability、Category、Price、Product type、Tags、Vendor帮助中心筛选页
自定义筛选来自商品选项、metafield(商品、类别、变体级)、metaobject见下文类型限制
筛选来源(Source)创建筛选时选的数据来源官方写明每个来源在每店只能用一次
筛选展示文本、Swatch(色块或图案)、Image(图标或图形)展示需要主题支持筛选值接口
Related 推荐与当前商品相似的一组商品,由 Shopify 自动生成依据购买历史、商品描述(仅英文店面)、相关集合
Complementary 推荐经常与当前商品一起购买的补充商品需要手动设置
商品提升(Product boost)给商品指定搜索词,使其在店内搜索中排名更高每个提升最多 10 个搜索词
语义搜索用相关词、概念、类别等上下文扩展结果有商品数与套餐前提
预测搜索输入时给出建议与普通搜索结果页分别配置

在哪里配置

  • 入口:Apps > Search & Discovery。
  • 筛选:Filters > Add filter,在 Source 字段选择来源,保存。
  • 推荐:Product recommendations > Add recommendations,选商品后最多选 10 个 Complementary 与 10 个 Related。可设置只显示手动推荐,或与自动生成结果并用;也可以在批量编辑器中编辑。
  • 搜索设置:Apps > Search & Discovery > Settings(结果类型、缺货显示、Combined listings 显示);商品提升在 Apps > Search & Discovery > Search > Product boosts。
  • 报表:完整报表在 Analytics > Reports;应用内默认显示最近 30 天。
  • 权限:帮助中心搜索总览页写明推荐与提升需要 Products 权限,筛选需要 Online Store Search and Navigation,报表需要 Reports;该页还写某些功能需要在隐私设置中启用 Shopify Network Intelligence,具体是哪些功能未核验。

与主题、Liquid 和 API 的连接

  • 筛选(Liquid):collection.filters 与 search.filters 返回筛选对象数组;filter 对象含 type(boolean、list、price_range)、label、param_name(如 filter.v.option.color)、presentation(image、swatch、text)、operator(AND 或 OR)、active_values、inactive_values、url_to_remove,价格类有 min_value、max_value、range_max。
  • 筛选(URL):商品级参数为 filter.p.*(filter.p.t.category、filter.p.tag、filter.p.product_type、filter.p.vendor、filter.p.m.custom.made_in),变体级为 filter.v.*(filter.v.availability、filter.v.option.color、filter.v.price.gte 与 lte、filter.v.m.custom.fabric)。不同筛选之间为 AND,同一筛选内的多个值为 OR。应用变体级筛选后,商品对象的 featured_media 与 url 会更新为第一个匹配的变体。筛选必须先在后台创建才会在前台生效。
  • 搜索结果页:表单指向 /search(或 routes.search_url),参数 q、type(product、page、article)、page、options[unavailable_products](show、hide、last,默认 last)、options[prefix](last、none)、sort_by(relevance、price-ascending、price-descending)。search 对象提供 terms、performed、results、results_count、filters、sort_options。若主题请求里带了 type 参数,会覆盖后台的结果类型设置。
  • 预测搜索(Ajax):GET /{locale}/search/suggest.json,或返回渲染分区的 /search/suggest(需要 section_id);resources[type] 可取商品、集合、页面、文章、查询建议;resources[limit] 为 1 到 10(默认 10),resources[limit_scope] 取 all 或 each;不支持的买家语言返回 417。
  • 推荐(Ajax):GET /{locale}/recommendations/products.json,或 /recommendations/products(需要 section_id);product_id 必填,intent 取 related(默认)或 complementary,limit 为 1 到 10(默认 10);缺少 product_id 或 intent 非法返回 422,商品未发布到 Online Store 返回 404。官方写明 Search & Discovery 可能影响这两个端点的结果。
  • Storefront API:search 查询接受 query、productFilters、sortKey、types、unavailableProducts、prefix,并返回用于构建分面界面的 productFilters;predictiveSearch 接受 query、limit(1 到 10)、limitScope、types、searchableFields、unavailableProducts,返回 articles、collections、pages、products、queries。帮助中心写明这些能力会遵循应用中的配置。
  • 主题兼容:筛选需要兼容主题,或使用筛选 Liquid API / Storefront API 的自定义店面;不兼容的主题上可以创建筛选但不会显示。推荐需要主题同时包含 complementary products 区段和 product recommendations 区段,每个商品页最多一个 complementary 区块。

限制、数值与易错点

核验于 2026-09-29。官方页面之间的差异并列,不选边。

项目官方所写来源
筛选数量每店最多 25 个帮助中心筛选页;shopify.dev 存储前台筛选页
筛选值前台每个筛选最多显示 100 个值;应用内最多 1,000 个;每个筛选组最多 200 个值、每店 1,000 个组;唯一标签值最多 5,000;唯一选项或属性值最多 1,000帮助中心筛选页
不显示筛选的规模集合超过 5,000 个商品不显示筛选帮助中心筛选页;Liquid collection 对象(collection.filters 为空)
搜索页筛选结果超过 100,000 条不显示筛选帮助中心筛选页
同上search.filters 在结果超过 1,000 个商品时为空Liquid search 对象
分页paginate 每页最多 50Liquid collection 与 search 对象;paginate 标签页另有说法,见集合浏览与筛选
翻译与币种Vendor 与 Tags 筛选不支持翻译,标签筛选只对默认语言显示;价格筛选不对非店铺默认币种显示;筛选值翻译不支持市场级语言实例帮助中心筛选页
推荐数量每个商品手动 Complementary 最多 10、Related 最多 10帮助中心推荐页
推荐排除已售罄、Unlisted、价格为 0.00、礼品卡、未发布到 Online Store、已在访客购物车中的商品不会被推荐帮助中心推荐页
商品提升每个提升最多 10 个搜索词;只作用于可售商品;含搜索语法时不生效;不影响第三方搜索引擎帮助中心修改搜索页
语义搜索商品少于 200,000;套餐为 Grow、Advanced 或 Plus;不适用于预测搜索与日语帮助中心修改搜索页
搜索匹配匹配完整单词,部分词可能不命中;拼写容错要求前 4 个字母正确;结果页每页最多 2 个页面或文章帮助中心搜索行为页
搜索字段商品:title、product_type、vendor、变体 title、SKU、barcode、body、tags;页面与文章:title、author、body帮助中心搜索行为页
排除搜索帮助中心:Unlisted 状态会使商品从搜索、集合页与推荐中移除,也可用 seo.hidden metafield搜索可见性页
同上Predictive Search API 页:不能把单个商品排除出预测搜索结果shopify.dev Predictive Search 页
  • 筛选类型:作为筛选来源的 metafield,官方列出支持单行文本、单行文本列表、小数、整数、布尔、metaobject 引用及其列表;其他类型未列出,未核验能否使用。
  • 同一筛选 OR、不同筛选 AND;tag 与 metafield 列表筛选可设为 AND。变体级筛选可能让商品数少于预期。
  • 同义词:网页搜索结果的摘要提及同义词组(synonym groups),但所读的两个帮助中心页面正文没有相关内容;本文不写同义词的做法。
  • 报表:搜索报表含 Click rate、Purchase rate、Searches by search query、Searches with no results、Searches with no clicks;推荐报表含 Click rate、Purchase rate、Product recommendations with low engagement;预测搜索的交互不计入搜索报表。

验证一次

  1. 在测试店铺安装应用,建立一个 Price 筛选、一个商品选项筛选和一个 metafield 筛选,在集合页逐个应用,记录 URL 参数与结果数。
  2. 换到非默认币种与非默认语言,确认价格筛选与标签筛选的显示。
  3. 准备一个超过 5,000 商品的集合(或读取 collection.filters 长度),确认筛选是否消失。
  4. 为一个商品设置 Complementary 与 Related,请求 /recommendations/products.json?product_id=…&intent=complementary,与页面区块对比;把其中一个推荐商品设为 Unlisted 后再请求。
  5. 设置一个 Product boost,用单词搜索与带 title: 语法的搜索各试一次,对比排名。
  6. 检查搜索结果页与预测搜索是否使用了相同的结果类型与缺货设置。

待继续完善

  • 同义词组的创建方式与上限未核验。
  • Search & Discovery 本身的费用、语义搜索之外的套餐限制未核验。
  • 100,000 与 1,000 两个搜索页筛选阈值的差异原因未核实。
  • 各主题(含第三方主题)对筛选、推荐区段的兼容程度未逐一核对。
  • 搜索、推荐在 Markets 与多语言下的完整行为未实测。