【发布时间】:2015-09-16 22:25:05
【问题描述】:
已创建以下元素范围索引: 标量类型:unsignedLong,本地名称:数字,
我正在运行以下代码:
String options =
"<search:options " +
"xmlns:search='http://marklogic.com/appservices/search'>" +
"<search:constraint name='number'>" +
"<search:range type='xs:unsignedLong'>" +
"<search:element name='number' ns=''/>" +
"</search:range>" +
"</search:constraint>" +
"</search:options>";
databaseClient.newServerConfigManager()
.newQueryOptionsManager().writeOptions("myopt", new StringHandle(options));
JSONDocumentManager jsonDocumentManager =
databaseClient.newJSONDocumentManager();
for (int i = 0; i < 10; i++) {
jsonDocumentManager.write("/somepath/"+ i +".json",
new StringHandle("{\"number\": \""+i+"\"}"));
}
QueryDefinition queryDefinition = new StructuredQueryBuilder()
.rangeConstraint("number", StructuredQueryBuilder.Operator.GT, "5");
queryDefinition.setOptionsName("myopt");
StringHandle searchHandle = databaseClient.newQueryManager()
.search(queryDefinition, new StringHandle());
System.out.println(searchHandle.get());
我希望获得数字大于 5 的文档,但我得到的搜索结果为空。也许我错过了什么?
我正在使用 MarkLogic server 7.0,client-api-java 2.0.5。
谢谢,Hlib
更新
我正在另一台机器上运行类似的代码,它工作正常。现在尝试找出差异
【问题讨论】: