我使用一个可以操作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递归搜索
虽然可能不是最有效率的,所以要注意性能。
指定查询结果顺序的唯一方法是在查询中使用ORDER BY
子句。如果不这样做,实现可以自由地以它想要的任何顺序返回节点。
但我知道在JCR-SQL2中没有办法指定父节点下的子节点的“自然顺序”(我的术语)。
在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在内部得出类似 然后按的结果排序。