使用 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);
参见:
希望对您有所帮助,
我有一个 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);
参见:
希望对您有所帮助,