You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sitecore Headless GraphQL搜索查询:如何仅获取Web数据库最新发布版本?

解决Sitecore Headless GraphQL搜索仅返回Web数据库已发布最新版本的问题

当前你的GraphQL搜索查询会返回master和web数据库中的所有版本项,要实现仅获取已发布到web数据库的最新版本内容,可通过以下关键修改实现:

修改方案

  • 限定查询Web数据库:Sitecore的Web数据库仅存储已发布内容,直接指定查询该数据库即可排除master库中未发布的项。
  • 过滤最新版本:添加_latestVersion条件,确保只返回每个内容项的最新发布版本。

修改后的完整查询

query titleSearch {
  TitleSearch: search(
    database: "web" # 指定查询Web数据库
    where: {
      name: "_path"
      value: "{id of specific content tree node}"
      operator: EQ
      AND:
      [
         { 
            name: "_language"
            value: "en"
            operator: EQ
          }
          { 
            name: "pageTitle"
            value: "in-flight"
            operator: EQ
          },
          { # 过滤仅返回最新版本
            name: "_latestVersion"
            value: "true"
            operator: EQ
          }
      ]
    }
    first: 10
    after: ""
    orderBy: { name: "pageTitle", direction: ASC }
  ) {
    Total: total
    pageInfo {
      endCursor
      hasNext
    }
    Results: results {
      ... on Item {
          pageTitle:field(name:"pageTitle"){            
            value
          }
          url {
            value: path
          }
      }
    }
  }
}

关键修改说明

  1. 在search根字段中添加database: "web"参数,直接将查询范围限定到仅包含已发布内容的Web数据库,从源头上排除master库的未发布项。
  2. 在where的AND条件数组中新增_latestVersion过滤规则,确保每个返回的内容项都是其最新的发布版本,避免同一内容的旧版本被返回。

内容的提问来源于stack exchange,提问作者Hassan Farooq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:37:18