如何使用MarkLogicJavaAPI编写cts查询

如何使用MarkLogicJavaAPI编写cts查询,marklogic,marklogic-8,Marklogic,Marklogic 8,我想使用MarkLogicJavaAPI运行下面的查询 cts:search(fn:doc(), cts:and-query((cts:collection-query("/abc/xyz"), cts:collection-query("/abc/xyz/pqr")))) 您需要使用结构化查询,而不是cts:query。他们在表现力上非常相似。Java客户端API包含一个用于结构化查询的生成器类 有关详细信息,请参见以下内容: 使用a、和方法构造等效的结构化查询,以搜索两个集合中的

我想使用MarkLogicJavaAPI运行下面的查询

cts:search(fn:doc(), cts:and-query((cts:collection-query("/abc/xyz"), 
cts:collection-query("/abc/xyz/pqr"))))

您需要使用结构化查询,而不是cts:query。他们在表现力上非常相似。Java客户端API包含一个用于结构化查询的生成器类

有关详细信息,请参见以下内容:

使用a、和方法构造等效的结构化查询,以搜索两个集合中的文档

// create the client -- this will change slightly in Java Client API 4.x
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.and(
      qb.collection("/abc/xyz"), 
      qb.collection("/abc/xyz/pqr"));

// run the search
queryMgr.search(query, resultsHandle);