如何使用 marklogic java api 编写 cts 查询

How to write cts query using marklogic java api

我想 运行 使用 MarkLogic Java API

下面的查询
cts:search(fn:doc(), cts:and-query((cts:collection-query("/abc/xyz"), 
cts:collection-query("/abc/xyz/pqr"))))

您需要使用结构化查询,而不是 cts:query。它们在表现力上非常相似。 Java 客户端 API 包括用于结构化查询的构建器 class,com.marklogic.client.query.StructuredQueryBuilder

详情请看以下内容:

使用 StructuredQueryBuilder, the and() and collection() 方法构建等效的结构化查询来搜索两个集合中的文档。

// 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);