MarkLogic 8-按路径索引排序顺序
ML8中是否已支持按路径索引排序顺序?我希望实现以下类似目标:MarkLogic 8-按路径索引排序顺序,marklogic,Marklogic,ML8中是否已支持按路径索引排序顺序?我希望实现以下类似目标: <options xmlns="http://marklogic.com/appservices/search"> <sort-order collation="http://marklogic.com/collation/en/S1/EO/CU/MO" type="xs:string" direction="ascending"> <path-index>attritbutes//n
<options xmlns="http://marklogic.com/appservices/search">
<sort-order collation="http://marklogic.com/collation/en/S1/EO/CU/MO" type="xs:string" direction="ascending">
<path-index>attritbutes//name</path-index>
</sort-order>
</options>
属性//名称
如果没有,有没有办法做到这一点?我有几个来自不同父节点或根元素的同名元素,因此不能仅使用
<options xmlns="http://marklogic.com/appservices/search">
<sort-order collation="http://marklogic.com/collation/en/S1/EO/CU/MO" type="xs:string" direction="ascending">
<element ns="" name="name"/>
</sort-order>
</options>
根据以下内容:
排序顺序元素必须具有单个元素子元素、单个分数子元素、单个字段子元素或单个json属性子元素之一
所以你不能有一个路径子,但有一种方法。根据要使用的路径创建字段,然后根据该字段进行排序 8.0-1中有一个模式错误,因此排序顺序/路径索引无法验证
但是,代码实现了对排序顺序/路径索引的支持,因此如果您不验证选项,它应该可以工作。不过,最好按照Dave的建议使用一个字段,这样您就可以继续使用验证来检查错误
模式错误在8.0-2中已修复。是的,在
'name'
元素上创建一个字段
<options xmlns="http://marklogic.com/appservices/search">
<sort-order type="xs:string"
collation="http://marklogic.com/collation/"
direction="ascending">
<field name="name"/>
</sort-order>
</options>
在名称
元素上创建字段时,创建范围索引
(在定义字段
时,可以选择创建范围索引
),否则将抛出错误。@Dixit重要提示!字段范围索引是排序所必需的(您可以根据您的字段创建字段范围索引)。@FatehKhalsa谢谢,但我在评论中说了同样的话:)创建字段!!伟大的解决方案:)正如@Dixit在下面的评论中所指出的,不要忘记根据您的字段创建一个字段范围索引!它们是分类所必需的。另外,当用于排序时,字段
只能包含一个include,不一定需要任何include(您可以为字段使用显式路径,该路径直接指向要排序的元素-这在我的情况下是必要的,因为我的整个方法是试图避免文档中有多个相同的localname的问题,如果所包含的内容有多个localname,includes仍将返回一个多个项的顺序
林错误“代码实现了对排序顺序/路径索引的支持”这是真的吗?我在文档(ML v9)中找不到对此的任何引用,并且没有幸以这种方式实现它(我最终求助于@Dave的字段
解决方案)。