我在MarkLogic中使用cts搜索,而不是按传递的排序选项进行排序。
例如,以下内容会产生未排序的结果
xdmp:document-insert("/test/test1",<test attrDate="2016-1-10"></test>);
xdmp:document-insert("/test/test2",<test attrDate="2015-1-10"></test>);
xdmp:document-insert("/test/test3",<test attrDate="2017-1-10"></test>);
cts:search(
xdmp:directory("/test/", "infinity")/test,
cts:true-query(),
(
cts:index-order(cts:element-attribute-reference(xs:QName("test"), xs:QName("attrDate")), ("ascending"))
)
);
返回以下内容:
<test attrDate="2016-1-10">
</test>
element
<test attrDate="2015-1-10">
</test>
element
<test attrDate="2017-1-10">
</test>
所以结果正确但未排序。
如何按MarkLogic cts查询中的属性排序?
我在该属性上设置了索引,这是配置:
(这可以在http://localhost:8001/&gt;摘要&gt; YOURDATABASE-content&gt;属性范围索引创建索引&gt;添加,虽然我是通过Roxy添加的)
答案 0 :(得分:3)
事实证明这是一个简单的数据问题(我在发布之前的最后5秒内发现)
2016-01-10是2016年1月10日
2016-1-10是MarkLogic忽略的格式错误的字符串