【问题标题】:Key Value Pair Search using Marklogic Java API使用 Marklogic Java API 进行键值对搜索
【发布时间】:2018-10-01 01:35:35
【问题描述】:

如下所述,我在 Marklogic 中存储了一个 XML

<employee>
    <name>Shiv</name>
    <address>.....</address>
    <phone>......</phone>
    <email>...</email>
</employee>

所以我的要求是,我想使用 marklogic java api 搜索&lt;name&gt; 标签及其值为Shiv

我尝试使用KeyValueQueryDefinition,它工作正常,但KeyValueQueryDefinition 现在已被弃用,所以我无法使用它。

QueryManager queryMgr = client.newQueryManager();
KeyValueQueryDefinition query = queryMgr.newKeyValueDefinition();
query.put(queryMgr.newElementLocator(new QName("name")), "Shiv");
SearchHandle resultsHandle = new SearchHandle();
queryMgr.search(query, resultsHandle);

所以我需要满足我上述要求的KeyValueQueryDefinition 的替代品,而且我不想为&lt;name&gt; 标签创建元素范围索引。

【问题讨论】:

    标签: marklogic marklogic-8 marklogic-9


    【解决方案1】:

    值查询等同于 KeyValueQueryDefinition。以下几行应该有效:

    QueryManager queryMgr = client.newQueryManager();
    StructuredQueryBuilder qryBldr = new StructuredQueryBuilder();
    StructuredQueryDefinition query = qryBldr.value(qryBldr.element("name"), "Shiv");
    SearchHandle resultsHandle = new SearchHandle();
    queryMgr.search(query, resultsHandle);
    

    见:

    http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/StructuredQueryBuilder.html#value-com.marklogic.client.query.StructuredQueryBuilder.TextIndex-java.lang.String...-

    希望对您有所帮助,

    【讨论】:

    • 它工作得很好......谢谢@ehennum
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    相关资源
    最近更新 更多