【问题标题】:Range Structured Query using Client Java API in MarkLogic在 MarkLogic 中使用客户端 Java API 的范围结构化查询
【发布时间】: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

更新

我正在另一台机器上运行类似的代码,它工作正常。现在尝试找出差异

【问题讨论】:

    标签: java marklogic nosql


    【解决方案1】:

    该代码工作的环境是否可能正在运行 MarkLogic 8?

    在 MarkLogic 7 上,JSON 以 XML 形式保存在一个特殊的命名空间中。您使用该命名空间定义范围索引:

    http://docs.marklogic.com/7.0/guide/rest-dev/search#id_95526

    然后,用 json-key 代替 element 指定范围约束:

    <search:json-key>number</search:json-key>
    

    在 MarkLogic 8 中,JSON 被持久化为 JSON,因此您无需使用命名空间定义索引,而是使用 json-property 而不是 json-key。

    希望对您有所帮助,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 2016-06-04
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多