如何在 Jackrabbit 中查询同名兄弟姐妹
How to Query Jackrabbit for same name siblings
是否可以在 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].
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 的路径)中包含 ]
,可通过上述查询进行选择。
Use this query with caution as there are a lot of system nodes OOTB that have ] in the name and this is by design.
您可以将[nt:base]
更改为其他相关的橡木索引以更好地过滤。
HTH
是否可以在 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].
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 的路径)中包含 ]
,可通过上述查询进行选择。
Use this query with caution as there are a lot of system nodes OOTB that have ] in the name and this is by design.
您可以将[nt:base]
更改为其他相关的橡木索引以更好地过滤。
HTH