我使用以下查询根据CQ中的上次修改日期获取节点。
['0503.mat', '0504.mat', '0505.mat', '0506.mat', '0507.mat', '0508.mat',
'0509.mat', '0510.mat', '0511.mat', '0512.mat', '0601.mat', '0602.mat',
'0603.mat', '0604.mat', '0605.mat', '0606.mat', '0607.mat', '0608.mat',
'0609.mat', '0610.mat', '0611.mat', '0612.mat', '0701.mat', '0702.mat']
我们已经使用了
/jcr:root/content/scaffoldes/properties//*[@jcr:primaryType = 'nt:unstructured' and (@sling:resourceType = 'acme/components/content/scaffoldItem' or @sling:resourceType = 'acme-core/components/data/property') and @jcr:content/cq:lastModified >= xs:dateTime('2000-01-01T00:00:00.000-08:00') and @jcr:content/cq:lastModified < xs:dateTime('2014-12-31T00:00:00.000-08:00') and not(@isHidden)] order by @jcr:score
测试此查询。但是,即使给出了一个巨大的日期范围(2000年至2016年),这个查询也没有返回任何内容。
但是如果我们删除日期范围部分,则此查询将返回节点。
任何纠正这一点的指针都会有所帮助。
谢谢和问候, 圣
备注
使用以下代码创建日期字符串:
http://localhost:4502/crx/explorer/ui/search.jsp
答案 0 :(得分:0)
对不起造成的任何混淆。我发现我尝试查询的节点没有cq:lastModified属性。因此修改了查询以在条件中包含cq:lastReplicated。
... and ((@jcr:content/cq:lastModified >= xs:dateTime('2000-01-01T00:00:00.000-08:00') and @jcr:content/cq:lastModified < xs:dateTime('2016-02-11T15:52:57.090-08:00')) or (@jcr:content/cq:lastReplicated >= xs:dateTime('2000-01-01T00:00:00.000-08:00') and @jcr:content/cq:lastReplicated < xs:dateTime('2016-02-11T15:52:57.090-08:00'))) and ...