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

AEM 6.1查询求助:获取已激活且修改后未重发布页面

嘿,刚好之前在AEM 6.1里处理过一模一样的需求——找出那些已经激活(绿色高亮)但之后又被修改(蓝色高亮)的页面,也就是cq:lastModified日期晚于cq:lastReplicated的页面。下面是直接能用在CQ5 Query Debugger里的两种查询语句,你可以根据习惯选:

1. SQL2 查询语句(推荐,可读性更强)

在CQ5 Query Debugger的「Query Language」下拉框选SQL2,然后输入下面的语句:

SELECT * FROM [cq:Page] AS page
WHERE ISDESCENDANTNODE(page, '/content')
AND page.[cq:lastModified] > page.[cq:lastReplicated]
AND page.[cq:lastReplicated] IS NOT NULL
  • 细节说明:
    • [cq:Page] 指定只查询页面类型的节点,避免把非页面的资源也查出来
    • ISDESCENDANTNODE(page, '/content') 限定查询范围为/content下的所有页面,你可以改成你的具体站点路径比如/content/we-retail来缩小查询范围
    • page.[cq:lastModified] > page.[cq:lastReplicated] 核心判断条件:页面最后修改时间晚于最后激活时间
    • page.[cq:lastReplicated] IS NOT NULL 排除从未激活过的页面(这类页面不会有绿色高亮标识,不符合你的需求)
2. XPATH 查询语句

如果更习惯用XPATH语法,在「Query Language」选XPATH,输入:

/jcr:root/content//element(*, cq:Page)[
    jcr:content/cq:lastModified > jcr:content/cq:lastReplicated
    and jcr:content/cq:lastReplicated != ''
]
  • 细节说明:
    • /jcr:root/content// 递归查询/content下的所有节点,同样可以改成具体站点路径来缩小范围
    • element(*, cq:Page) 筛选出所有cq:Page类型的节点
    • jcr:content/cq:lastModified > jcr:content/cq:lastReplicated 实现时间对比的核心逻辑
    • jcr:content/cq:lastReplicated != '' 过滤掉从未激活过的页面
额外实用提示
  • 如果查询结果太多,可以在SQL2语句末尾加 ORDER BY page.[cq:lastModified] DESC 按修改时间倒序排列,或者加 LIMIT 100 限制单次返回的结果数量
  • 确保你拥有目标路径下页面的查询权限,不然可能会返回不完整的结果或者空集
  • AEM 6.1中cq:lastModified和cq:lastReplicated都是标准的Date类型,Query Debugger会自动处理日期的比较逻辑,不用手动转换格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:21:31