如何查询同名兄弟姐妹的Jackrabbit

时间:2017-01-03 12:56:25

标签: cq5 aem query-builder jcr jcr-sql2

是否可以在Adobe CQ5 / Adob​​e 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]。

1 个答案:

答案 0 :(得分:2)

Adob​​e在此发表了一篇有用的文章:

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