我想查询我存储的版本上的jackrabbit存储库。JCR查询返回摘录和父标识符
我的库看起来像是如下:
下面的XPath查询工作良好://element(*, nt:frozenNode)[jcr:contains(., '" + keyword + "') ]/rep:excerpt(.)
且来自行对象返回我能得到摘录中去发现:模板节点“德:内容”属性(这是全文索引我有我自己的lucene配置)。因为查询只会返回找到的路径(/ jcr:system/jcr:versionStorage/95/c8/3e/95c83efc-8441-4017-xxxxx),因此, b3af-ae7be49f07e5/1.0/jcr:frozenNode/de:template)和摘录本身。
所以我想知道存储在Jackrabbit中的nt:versionHistory节点的标识符。
我有一个解决方案中,通过获取父节点,直到NT:达到versionHistory并获得其标识符:
Row row = (Row) rows.next();
Node node = row.getNode();
Node frozenNode = node.getParent();
Node versionNumber = frozenNode.getParent();
String versionId = versionNumber.getIdentifier();
然而,这需要太多的时间,有很多版本的坏的表现。
因此,我不知道是否有可能在查询中包括该版本ID,使得没有父节点需要执行查询后取出。