如何使用 MarkLogic 中的 cts:index-order 对 XML 中多次出现的元素进行排序?

How to sort on element having multiple occurrences in XML using cts:index-order in MarkLogic?

假设我有一堆结构如下定义的 XMLS。

<root>
    <child1>
        <name>Dixit</name>
        <age>25</age>
    </child1>
    <child2>
        <name>Singla</name>
        <age>45</age>
    </child2>
</root>

CTS search query我已经returns我写了整篇文档

我想按 <child2><name> 元素对文档进行排序。

我已经为 <name> 元素定义了 cts:index-order,但是文档正在按 <child1> 的元素 <name> 排序。

如何按 <child2><name> 元素对文档进行排序?

child2/name 上定义路径范围索引,并将其用于 cts:index-order

以下是有关如何使用 Admin UI 创建路径范围索引的一些详细信息:http://docs.marklogic.com/guide/admin/range_index#id_54948

cts:index-order 接受一个 cts:reference 作为参数。要使用路径范围索引,您需要 cts:path-reference.

cts:index-order( cts:path-reference("/root/child2/name", ()) )

HTH!