Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MarkLogic 8 - sort-order by path-index

Tags:

marklogic

Is sort-order by path-index already supported in ML 8? I want to achieve similar to the below:

<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>

If not, is there a way to achieve this? I have several elements with the same name from different parent nodes or from the root element so I can't use just

<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>
like image 422
kdm06 Avatar asked Feb 14 '15 13:02

kdm06


2 Answers

There is a schema bug in 8.0-1 so that sort-order/path-index does not validate.

However, the code implements support for sort-order/path-index, so if you don't validate the options, it should work. It might be better, however, to use a field as Dave suggests so you can continue to use validation to check for errors.

The schema bug is fixed in 8.0-2.

like image 33
ehennum Avatar answered Sep 21 '22 11:09

ehennum


According to the docs:

The sort-order element must have one of a single element child, a single score child, a single field child, or a single json-property child.

So you can't have a path child, but there is a way. Create a field based on the path(s) you want to use, then sort based on that field.

like image 195
Dave Cassel Avatar answered Sep 20 '22 11:09

Dave Cassel