我们使用apache jackrabbit存储内容(html,image,pdfs)如下:
/folder1 (nt:unstructured)
/content1(nt:unstructured)
/file(nt:folder)
/test.html(nt:file)
/test.html-contents (nt:resource)
在UI中,我们希望显示可以按名称,文件大小,文件类型等排序的所有内容。为此,我尝试使用XPath检索内容节点。
是否可以对节点名称进行排序?我试过像
这样的东西“/ element(*,nt:base)顺序由@name升序”
但这不起作用。它适用于内容的其他属性,但不适用于名称。 2.是否可以对文件大小进行排序?由于文件是内容的子节点,我是否可以根据文件大小查询内容? (以某种方式通过jcr:data查询).length?)
作为一种解决方法,我通过节点迭代器检索所有内容并进行内存中排序/分页。我希望有更好的方法来做到这一点。
答案 0 :(得分:0)
据我所知,JCR Xpath查询无法按名称排序。但是使用SQL它是受支持的。这可能取决于Jackrabbit的版本。
使用SQL,上面的查询是:
select * from nt:base order by jcr:name ASC
也不支持对资源长度进行排序。您可能需要考虑在节点上设置额外属性以进行排序。处理上传到Jackrabbit时可以执行此操作。
根据内存中排序的节点数量可能会成为一个大问题。