我正在使用带有日期的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"
这里有什么问题?还有另外一个问题,Marklogic是否只在我们添加' Z' (祖鲁时区)在约会?
由于
答案 0 :(得分:5)
您的范围索引是否使用正确的数据类型创建?
错误告诉我您已创建数据类型日期的范围索引,并尝试将dateTime推入日期范围。 尝试将范围索引的定义从类型日期更改为类型dateTime。
HTH,
彼得
答案 1 :(得分: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>
并且全部工作
答案 2 :(得分:0)
感谢您的建议,我将日期索引更改为dateTime索引,我使用该索引进行排序,并得到以下异常
[1.0-ml] SEARCH-BADORDERBY: (err:FOER0000) Indexes are required to support element, element-attribute, json-property, or field sort specifications.
Stack Trace
In /MarkLogic/appservices/search/search-impl.xqy on line 2401
In impl:build-order-by(<options xmlns="http://marklogic.com/appservices/search"><constraint name="concept"><custom facet="false"><parse apply="p...</options>)
$options := <options xmlns="http://marklogic.com/appservices/search"><constraint name="concept"><custom facet="false"><parse apply="p...</options>
$term := <sort-order type="xs:dateTime" collation="http://marklogic.com/collation/" direction="ascending" xmlns="http://marklogic.com/appservices/search"><field name="concept_createdDate"/></sort-order>
$direction := xs:token("ascending")
$ref := ()
以下是我正在运行的
let $search := "mamidrx"
let $options :=
<options xmlns="http://marklogic.com/appservices/search">
<sort-order type="xs:dateTime" collation="http://marklogic.com/collation/" direction="ascending">
<field name="concept_createdDate"/>
</sort-order>
<term>
<term-option>case-insensitive</term-option>
<term-option>punctuation-insensitive</term-option>
<term-option>whitespace-insensitive</term-option>
<term-option>wildcarded</term-option>
</term>
<return-facets>false</return-facets>
<return-values>false</return-values>
<return-constraints>false</return-constraints>
<return-frequencies>false</return-frequencies>
<return-qtext>false</return-qtext>
<search-option>unfiltered</search-option>
<search-option>unfaceted</search-option>
<search-option>format-json</search-option>
<search-option>score-simple</search-option>
</options>
let $start := 1
let $page-length :=10000
let $result := search:search($search, $options, $start, $page-length)
return $result