JSON 文档的 Marklogic 日期格式

Date format in Marklogic for JSON Documents


我有 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 才理解日期吗?

谢谢

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

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

HTH,

彼得

谢谢大家,找到我的错误了..

对于 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>

一切正常