我正在使用 MLCP(Marklogic Content Pump)将内容从一个数据库复制到另一个数据库。在这个我使用-query_filter选项,它的值是一个 cts:query 以 XML 序列化格式的一组 cts:element-range-query 包装在 cts:and-query :
<cts:and-query xmlns:cts="http://marklogic.com/cts">
<cts:element-range-query operator=">">
<cts:element xmlns:c="http://iddn.icis.com/ns/core">c:released-on</cts:element>
<cts:value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2000-12-21T00:00:00Z</cts:value>
</cts:element-range-query>
<cts:element-range-query operator="<">
<cts:element xmlns:c="http://iddn.icis.com/ns/core">c:released-on</cts:element>
<cts:value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2016-12-21T00:00:00Z</cts:value>
</cts:element-range-query>
</cts:and-query>
现在,上面的查询在 ML Qconsole 上执行时返回有效结果,但是当传入 MLCP 的 -query_filter 选项时,它会给出错误消息'Invalid attribute value character '<'。
Marklogic 和 MLCP 的版本是 8.0-5。
在进一步深入研究这一点时,我发现问题仅在于运算符值小于“<”时
注意:我在数据库中为元素 "released-on" 配置了一个有效的范围索引。