是否可以在Adobe CQ5 / Adobe Experience Manager中使用JCR-SQL2,JCR-SQL或QueryBuilder查找同名兄弟(SNS)。我尝试将这些节点与具有以下条件的查询匹配,而不必遍历整个存储库(慢速和长时间运行):
if(node.getIndex() > 1) {
// this node is matching the SNS criteria
}
SNS定义如下:
/a/b/c
/a/b/c[2]
/a/b/c[3]
/a/b[2]/c[2]
/a/b/c[3]
/a/d/f
/a/d/f[2]
因此查询结果应包括/ a / b / c [2],/ a / b / c [3],/ a / b [2] / c [2],/ a / b / c [3],/ a / d / f [2]。
答案 0 :(得分:2)
Adobe在此发表了一篇有用的文章:
https://helpx.adobe.com/experience-manager/kb/find-sns-nodes.html
编辑:对此的一个查询可能如下:
SELECT [jcr:path] FROM [nt:base] WHERE ISDESCENDANTNODE('/') AND [jcr:path] like '%\]'
这个想法是,oak查询将能够找到通过SNS解析逻辑迁移的索引节点。这些名称将在其名称(URI的路径)中包含]
,可通过上述查询进行选择。
谨慎使用此查询,因为名称中有很多系统节点OOTB,这是设计使然。
您可以将[nt:base]
更改为其他相关的oak索引,以便更好地过滤。
HTH