我正在运行一组存储在 marklogic 中的数据的xqueries。当我看到结果时,我注意到数据记录的排序顺序与我从其加载的文件中的排序顺序不同。我使用flow studio将我的xml
文档加载到marklogic中。我需要文件的顺序与源文件中的顺序相同。有没有办法实现这一目标? OR 如果无法按升序顺序对文档进行排序将解决我的问题。该怎么办?注:
我想订购xml文件而不是xquery结果
答案 0 :(得分:5)
MarkLogic不会按特定顺序存储记录。也就是说,在记录被摄取时,您可以添加可以使用的属性或元数据元素。例如,当我从CSV加载行时,如果我希望能够再次按该顺序表示数据,我通常会确保每一行都有唯一的有序ID。
无论如何,您需要根据用于检索记录的查询返回有序结果,正如您在问题的第二部分中所提出的那样。
使用FLOWR查询数据时,您将能够使用order by ascending
子句按所需值对文档进行排序。
当您返回搜索时,可以更多地参与搜索:search()或cts:search()结果,但底层逻辑类似。在尝试订购搜索结果时,有一些重要的性能考虑因素 - 通常您需要在sort元素上使用范围索引。 ML文档中有大量信息,具体取决于您查询要订购的记录的方式。
XQuery order by clause:https://docs.marklogic.com/guide/xquery/langoverview#id_71283
效果指南: https://docs.marklogic.com/guide/performance/order_by
搜索中的排序顺序:search() https://docs.marklogic.com/guide/search-dev/appendixa#id_44212