cts使用cts:element-attribute-reference date忽略索引顺序

时间:2017-02-06 10:00:55

标签: xquery marklogic

背景

我在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查询中的属性排序?

进一步背景

我在该属性上设置了索引,这是配置:

attrDate index config

(这可以在http://localhost:8001/&gt;摘要&gt; YOURDATABASE-content&gt;属性范围索引创建索引&gt;添加,虽然我是通过Roxy添加的)

1 个答案:

答案 0 :(得分:3)

事实证明这是一个简单的数据问题(我在发布之前的最后5秒内发现)

2016-01-10是2016年1月10日

2016-1-10是MarkLogic忽略的格式错误的字符串