当前位置: 首页 > 知识库问答 >
问题:

JCR SQL2-JCR浏览器中的结果查询顺序

洪昊然
2023-03-14

我使用一个可以操作JCR节点的应用程序,通常可以重命名、移除、删除或移动它们。

使用JCR API,我可以访问存储库中的节点,并以与JCR中相同的顺序返回一组节点。

我希望能够使用JCR SQL2查询实现同样的功能。我没有发现任何关于这个的信息

例如,如果我有一个JCR树,比如:

parentNode
|_childNode1
|_childNode2
|_childNode3
|_childNode4

当使用JCR SQL2进行查询时,它将以不同的顺序返回它们:childNode1、childNode2、childNode3、childNode4

我查看了这些文档和其他文档:http://docs.jboss.org/jbossdna/0.7/manuals/reference/html/jcr-query-and-search.html#jcr-sql2查询语言http://www.day.com/specs/jcr/2.0/6_Query.html

提前谢谢

编辑:如果使用Java为您的搜索是一个选项,你可能想看看在JCR回购通过java递归搜索

虽然可能不是最有效率的,所以要注意性能。

共有2个答案

蒋昊天
2023-03-14

指定查询结果顺序的唯一方法是在查询中使用ORDER BY子句。如果不这样做,实现可以自由地以它想要的任何顺序返回节点。

但我知道在JCR-SQL2中没有办法指定父节点下的子节点的“自然顺序”(我的术语)。

尉迟鸿熙
2023-03-14

在Jackrabbit搜索配置中,您是否尝试将属性“respectDocumentOrder”设置为true?

如果为true且查询不包含“order by”子句,则结果节点将按文档顺序排列。为了在查询返回大量设置为“false”的节点时获得更好的性能(在1.5中,“false”现在是默认值)。

只有在需要时,才应该将其设置为true,因为查询结果将在Java中完全迭代,以便对它们进行排序。

 类似资料:
  • 对于redis查询返回结果顺序的判断,我有些怀疑,特别是对于hgetall查询 例如,我将一些数据按其枚举的顺序放入数据库: 不带任何其他参数的“keys key:*”命令是否总是按照数据在数据库中出现的顺序返回该数据,还是会尝试以任何方式对数据进行排序?

  • 问题内容: 我有一个联合查询,它从两个不同的总体中获取计数。如何强制结果按查询中写入的顺序而不是升序/降序返回? 我希望第一个结果始终作为第一行返回。这可能吗? 问题答案: 您必须使用ORDER BY子句指定订单。在您的示例中,您可以执行以下操作:

  • 为什么我不能查询与[oak:非结构化],当这被声明nodeType 如何验证我是否能够利用创建的Lucene索引? 谢谢

  • 我正在探索Azure CosmosDB,在理解如何查询我的收藏时遇到了问题。我创建了一个web应用程序来添加和查询数据,但我想在Azure中搜索,不知道如何构造查询。 目前,我查询我的集合以返回所有内容。 这将返回大量信息。下面是数据的示例。 有没有办法只查询某个“searchTerm”(我的CosmosDB中的一个字段)。我似乎无法掌握过滤我的查询的语法。我已经尝试了在SQL中看起来有意义的东西

  • 假如我的电脑是一台全新的电脑,我使用 chrome 查询 www.baidu.com 以后,DNS 的查询是什么规则呢? 我目前的理解如下: (以下步骤皆按照查询失败来进行下一步) chrome 先查询浏览器缓存 查询本地 /etc/hosts 文件 查询本地 DNS服务器 查询 “.” 根服务器,获取 .com 服务器的地址 查询 “.com” 顶级域名服务器,获取 baidu.com 一级域名

  • 问题内容: 是否可以以预定顺序进行声明,即 选择ID 7,2,5,9和8 并以该顺序返回它们 ,仅基于ID字段? 这两个语句以相同顺序返回它们: 问题答案: 我不认为这是可能的,但是在这里找到了一个博客条目,似乎可以满足您的需求: 将给不同的结果 返回给定第二个参数的位置,因此对于上面的第一种情况,7的位置在集合中的位置1,2的位置在2,依此类推-mysql在内部得出类似 然后按的结果排序。