使用 Marklogic 进行键值对搜索 Java API

Key Value Pair Search using Marklogic Java API

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

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

所以我的要求是,我想使用 marklogic java api.

搜索 <name> 标签及其值为 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 来满足我的上述要求,而且我不想为 <name> 标签创建元素范围索引。

值查询等同于 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...-

希望对您有所帮助,