基于名称,文件大小等的jcr排序和分页

时间:2012-04-14 05:52:39

标签: jackrabbit jcr

我们使用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检索内容​​节点。

  1. 是否可以对节点名称进行排序?我试过像

    这样的东西

    “/ element(*,nt:base)顺序由@name升序”

  2. 但这不起作用。它适用于内容的其他属性,但不适用于名称。 2.是否可以对文件大小进行排序?由于文件是内容的子节点,我是否可以根据文件大小查询内容? (以某种方式通过jcr:data查询).length?)

    作为一种解决方法,我通过节点迭代器检索所有内容并进行内存中排序/分页。我希望有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:0)

据我所知,JCR Xpath查询无法按名称排序。但是使用SQL它是受支持的。这可能取决于Jackrabbit的版本。

使用SQL,上面的查询是:

select * from nt:base order by jcr:name ASC

也不支持对资源长度进行排序。您可能需要考虑在节点上设置额外属性以进行排序。处理上传到Jackrabbit时可以执行此操作。

根据内存中排序的节点数量可能会成为一个大问题。