Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MarkLogic 8-按路径索引排序顺序_Marklogic - Fatal编程技术网

MarkLogic 8-按路径索引排序顺序

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

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//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的
字段
解决方案)。