我在Marklogic中存储了一种XML,如下所述
<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);
看到:
希望能有所帮助,
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句