Java 替换MarkLogic中不推荐使用的KeyValueQueryDefinition以通过示例使用查询
我有一个保存在MarkLogic中的文档,如下所示:Java 替换MarkLogic中不推荐使用的KeyValueQueryDefinition以通过示例使用查询,java,marklogic,query-by-example,marklogic-9,Java,Marklogic,Query By Example,Marklogic 9,我有一个保存在MarkLogic中的文档,如下所示: <?xml version="1.0" encoding="UTF-8"?> <user> <userName>Vikram</userName> <password>password</password> <firstName>Vikram</firstName> <lastName>Swaminathan</
<?xml version="1.0" encoding="UTF-8"?>
<user>
<userName>Vikram</userName>
<password>password</password>
<firstName>Vikram</firstName>
<lastName>Swaminathan</lastName>
<emailAddress>vikram@gmail.com</emailAddress>
</user>
我得到的结果是:
Matched 1 locations in user/vikram:
[vikram@gmail.com]
我从下面的链接获得帮助,使其与新的Marklogic 9版本配合使用,因为最新版本中不推荐使用KeyValueQueryDefinition
此处是否有更改KeyValueQueryDefinition代码的变体
KeyValueQueryDefinition query = queryMgr.newKeyValueDefinition();
query.put(queryMgr.newElementLocator(new QName("emailAddress")),"vikram@gmail.com");
要使用QBE搜索以下链接中提到的文档:
关于如何处理这个问题的任何建议我可能不理解这个问题。难道你不简单地按照书中的说明去做吗
String-rawXMLQuery=
""+
"" +
"vikram@gmail.com" +
"" +
"";
StringHandle rawHandle=
新的StringHandle(rawXMLQuery).withFormat(Format.XML);
RawQueryByExampleDefinition查询=
queryMgr.newRawQueryByExampleDefinition(rawHandle);
KeyValueQueryDefinition query = queryMgr.newKeyValueDefinition();
query.put(queryMgr.newElementLocator(new QName("emailAddress")),"vikram@gmail.com");
String rawXMLQuery =
"<q:qbe xmlns:q='http://marklogic.com/appservices/querybyexample'>"+
"<q:query>" +
"<emailAddress>vikram@gmail.com</emailAddress>" +
"</q:query>" +
"</q:qbe>";
StringHandle rawHandle =
new StringHandle(rawXMLQuery).withFormat(Format.XML);
RawQueryByExampleDefinition query =
queryMgr.newRawQueryByExampleDefinition(rawHandle);