2017-04-15 67 views
1

我想搜索所有具有“Sample”作为元素“tagname”的属性“attr”和值“attr”的值的MarkLogic文档Java API想要搜索具有特定值的标记的所有marklogic文档

<tagname attr="attr">Sample</tagname> 
+0

'tag'是什么?它是一个元素吗?请给出您的内容的示例示例,以便全面了解问题。 –

+0

@DavidEnnis添加了我正在谈论的标签 – CrazyNerd

回答

3

用Java API的搜索开发人员指南,你可以使用一个containerQuery()匹配包含的元素中的子“标记名”,然后使用and()value()约束条件为ElementAttributetagname/@attr="attr",另一个value()约束条件为Elementtagname,值为“Sample”。

// create the client 
DatabaseClient client = 
    DatabaseClientFactory.newClient(host, port, user, password, authType); 
// create a manager for searching 
QueryManager queryMgr = client.newQueryManager();  
// create a query builder 
StructuredQueryBuilder qb = new StructuredQueryBuilder(); 

// build a search definition 
StructuredQueryDefinition query = 
    qb.containerQuery(
    qb.element("tagname"), 
    qb.and(
     qb.value(
     qb.elementAttribute(
      qb.element("tagname"), 
      qb.attribute("attr") 
     ), 
     "attr"), 
     qb.value(
     qb.element("tagname"), 
     "Sample" 
    ) 
    ) 
); 

// run the search 
queryMgr.search(query, resultsHandle); 
相关问题