ADOBE CQ5 JCR - 如何使用节点属性对查询构建器结果进行排序/排序

1 java jcr crx aem

下面是java编码部分,然后将结果填充到.csv文件中.但是,我似乎没有正确的订购部分(下面的代码段中的最后一行).

Map<String, String> map = new HashMap<String, String>();
map.put("path", "/etc/crx-db/form-data/career");
map.put("type", "nt:unstructured");
map.put("p.limit", "-1");
map.put("daterange.property", "created");
map.put("daterange.lowerBound", from);
map.put("daterange.lowerOperation", ">=");
map.put("daterange.upperOperation", "<=");
map.put("daterange.upperBound", to);
map.put("orderby", "created"); //<--here
Run Code Online (Sandbox Code Playgroud)

在crx repositry中提供(/ etc/crx-db/form-data/career),我有节点:data1,data2,data3 ......然后对于每个节点,有一个属性 - Name:created | 类型:日期 | 价值: 2014-01-28T23:21:15.029 + 08:00(例如)然而我在.csv中的结果不正确(第1行到第5行):

  • 2014-01-28T23:21:15.029 + 08:00
  • 2014-01-28T23:48:12.219 + 08:00
  • 2014-02-10T18:44:38.914 + 08:00 < - 未分类
  • 2014-02-10T18:43:32.426 + 08:00 < - 未分类
  • 2014-02-10T18:46:53.319 + 08:00

很确定我的代码没有运行.关于如何调整我的java代码以进行排序的任何想法?与返回已排序的data1,data2,data3 ...一样,基于创建的属性.谢谢.

rak*_*110 5

你快到了.它可以如下完成.

map.put("orderby", "@created"); 
map.put("orderby.sort", "desc"); // in case you want it descending
Run Code Online (Sandbox Code Playgroud)

如果您需要检查子节点中的属性,可以提供orderby值的相对路径.例如,如果您正在搜索dam:Asset并希望根据其元数据的jcr:lastModified属性对它们进行排序,那么您的查询将与此类似.

map.put("path", "/content/dam/geometrixx");
map.put("type", "dam:Asset");
map.put("orderby","@jcr:content/metadata/jcr:lastModified");
Run Code Online (Sandbox Code Playgroud)

如需进一步学习,请参阅