2017-04-15 1 views
1

"Sample"을 가진 모든 MarkLogic 문서를 "attr"요소와 "attr"요소를 갖는 "tagname"요소 값으로 검색하고 싶습니다. 당신이 찾고있는 무엇 자바 API태그에 대한 특정 값을 가진 모든 marklogic 문서를 검색하고 싶습니다.

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

'태그'란 무엇입니까? 그것은 요소입니까? 질문의 전체적인 내용을 담고있는 샘플 샘플을 제공하십시오. –

+0

@DavidEnnis 내가 태그하는 것을 추가했습니다. – CrazyNerd

답변

3

에서 검색 개발자 가이드를 확인 할 수 있습니다 경우 요소에 포함 된 하부 구조에 맞도록 containerQuery()을 사용할 수 있습니다 "tagname"을 입력 한 다음 tagname/@attr="attr"의 경우 ElementAttributevalue() 제약 조건이있는 and()을 사용하고 Elementtagname 값이 "Sample"인 경우 value() 제약 조건을 사용하십시오.

// 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); 
관련 문제