1

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

4

1 回答 1

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 '%\]'

这个想法是橡树查询将能够找到通过 SNS 解析逻辑迁移的索引节点。这些名称将包含]在它们的名称(URI 的路径)中,可以通过上述查询进行选择。

请谨慎使用此查询,因为有很多系统节点 OOTB 的名称中包含 ],这是设计使然。

您可以更改[nt:base]为其他相关的橡木索引以获得更好的过滤。

高温高压

于 2017-01-06T10:44:30.787 回答