2


我有其中包含日期的 JSON 文档,并且我正在尝试创建一个范围索引。当我像这样执行 ISO8601 格式时

2015-11-02T00:00:00-0600

我收到以下错误

IndexerEnv::putRangeIndex: XDMP-RANGEINDEX: Range index error: date "2015-11-02T00:00:00-0600": XDMP-LEXVAL: Invalid lexical value "2015-11-02T00:00:00-0600"

我认为它需要在UTC时间并且最后还需要一个'Z'表示祖鲁时区,所以我强制测试时间如下

2015-11-02T00:00:00Z

我仍然得到同样的错误..

IndexerEnv::putRangeIndex: XDMP-RANGEINDEX: Range index error: date "2015-11-02T00:00:00Z": XDMP-LEXVAL: Invalid lexical value "2015-11-02T00:00:00Z"

这里有什么问题?还有另一个问题,只有当我们在日期中添加“Z”(祖鲁时区)时,Marklogic 才能理解日期吗?

谢谢

4

2 回答 2

5

您的范围索引是否使用正确的数据类型创建?

该错误告诉我您已经创建了数据类型 date 的范围索引,并且您尝试将 dateTime 推送到日期范围中。尝试将范围索引的定义从 date 类型更改为 dateTime 类型。

高温下,

彼得

于 2016-02-10T14:26:49.600 回答
2

谢谢大家,发现我的错误..

对于 以外的类型xs:string,我不应该将排序规则参数添加到排序顺序中。将其更改为

<sort-order type="xs:dateTime" collation="http://marklogic.com/collation/" direction="ascending">
    <field name="concept_createdDate"/>
</sort-order>

<sort-order type="xs:dateTime" direction="ascending">
    <field name="concept_createdDate"/>
</sort-order>

一切正常

于 2016-02-10T19:42:50.520 回答