对MarkLogic中StructuredQueryDefinition中创建的字段使用rangeConstraint时出错

对MarkLogic中StructuredQueryDefinition中创建的字段使用rangeConstraint时出错,marklogic,java,Marklogic,Java,我正在尝试使用以下方法获取创建日期(已创建字段)的值大于“2014-04-25T02:11:10-07:00”的文档: qb.rangeConstraint("created", Operator.GT, "2014-04-25T02:11:10-07:00") 但是我越来越 [致命错误]:9:102:字符引用“”是无效的XML字符。 我也试过: qb.rangeConstraint("created", Operator.GT, "2014-02-25") 完整堆栈跟踪供您参考:

我正在尝试使用以下方法获取创建日期(已创建字段)的值大于“2014-04-25T02:11:10-07:00”的文档:

qb.rangeConstraint("created", Operator.GT, "2014-04-25T02:11:10-07:00")
但是我越来越

[致命错误]:9:102:字符引用“”是无效的XML字符。

我也试过:

qb.rangeConstraint("created", Operator.GT, "2014-02-25")
完整堆栈跟踪供您参考:

[Fatal Error] :9:102: Character reference "&#17" is an invalid XML character.
Exception in thread "main"
com.marklogic.client.MarkLogicIOException: Could not construct search results: parser error
at com.marklogic.client.io.SearchHandle.receiveContent(SearchHandle.java:160)
at com.marklogic.client.io.SearchHandle.receiveContent(SearchHandle.java:75)
at com.marklogic.client.impl.QueryManagerImpl.search(QueryManagerImpl.java:177)
at com.marklogic.client.impl.QueryManagerImpl.search(QueryManagerImpl.java:140)
at com.marklogic.client.example.tutorial.SearchProperties.main(SearchProperties.java:52)
Caused by: org.xml.sax.SAXParseException: Character reference "&#17" is an invalid XML character.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.marklogic.client.io.SearchHandle.receiveContent(SearchHandle.java:157)
... 4 more
我已经在数据库中最后修改的字段上添加了元素范围索引。
因此,请让我知道这个错误的可能原因。谢谢:)

堆栈跟踪令人费解。分析搜索响应时引发错误,因为发现非法字符

如果您使用StringHandle以字符串的形式获得响应并将其打印出来,那么输出可能会为您提供一些关于响应错误的线索

您还可以打印出从查询生成器获得的结构化查询,以查看Java客户机正在向服务器发送什么

确认一下:您是否创建了与约束对应的查询选项?如果没有,则应首先创建查询选项,或者直接对元素使用范围查询,如中所述:

希望有帮助


Erik Hennum

我在启动rangeConstraint查询时尝试了一些更改,现在我的查询调用如下:qb.properties(qb.rangeConstraint(“modofied”,Operator.GT,“2014-04-25”);所以现在我得到以下指定错误:线程“main”com.marklogic.client.FailedRequestException中的异常:本地消息:搜索失败:错误请求。服务器消息:XDMP-ARGTYPE:(错误:XPTY0004)cts:properties query(())--arg1不是cts:query类型请告诉我哪里出错了。谢谢。
XDMP-ARGTYPE
错误的意思是:不能有空的属性查询。你的代码有输入错误吗?是否应该修改
modofied
,或者可能是
prop:last modified
?是的,这是一个打字错误,但在将其更改为“modified”和“last modified”后,会产生与前面相同的错误。是的,我创建了与约束对应的选项。我正在粘贴代码片段和堆栈跟踪。代码:StructuredQueryBuilder qb=newstructuredquerybuilder(“教程”);StructuredQueryDefinition查询=qb.属性(qb.范围约束(“修改日期”,Operator.GT,“2014-04-25”);SearchHandle resultsHandle=queryMgr.search(查询,新的SearchHandle());堆栈跟踪:线程“main”com.marklogic.client.FailedRequestException中的异常:本地消息:搜索失败:错误请求。服务器消息:XDMP-ARGTYPE:(err:XPTY0004)cts:properties query(())--arg1不是com.marklogic.client.impl.JerseyServices.search(JerseyServices.java:1214)com.marklogic.client.impl.QueryManagerImpl.search(QueryManagerImpl.java:177)com.marklogic.client.impl.QueryManagerImpl.search(QueryManagerImpl.java:140)的cts:query:query在com.marklogic.client.example.tutorial.StructuredQuery.main(StructuredQuery.java:56)上,谢谢。我在《搜索开发指南》中使用了XML和JSON格式来指定具有RangeConstraint的结构化查询,但在使用StructuredQueryDefinition构建此查询时出现了一些问题。因此,请有人告诉我确切的函数调用,以便在特定的时间戳/日期之后添加/修改文档。提前谢谢。