如何在Marklogic中获取与URI模式匹配的所有文档
我开始学习marklogic的JavaAPI,我想知道的是如何获得符合特定URI模式的所有文档 例如,我想从ML-db获取所有文档,其中URI模式是如何在Marklogic中获取与URI模式匹配的所有文档,marklogic,Marklogic,我开始学习marklogic的JavaAPI,我想知道的是如何获得符合特定URI模式的所有文档 例如,我想从ML-db获取所有文档,其中URI模式是 “/Downloads/Current/com.crc.eng.dollar/*”我使用的是XQuery API,而不是Java API,但是您可以尝试通过XCC使用cts:uri匹配(请参见:)您可以查询目录中的文档。应采取以下措施: DatabaseClient client = DatabaseClientFactory
“/Downloads/Current/com.crc.eng.dollar/*”我使用的是XQuery API,而不是Java API,但是您可以尝试通过XCC使用cts:uri匹配(请参见:)您可以查询目录中的文档。应采取以下措施:
DatabaseClient client = DatabaseClientFactory.newClient(...);
GenericDocumentManager docMgr = client.newDocumentManager()
QueryManager queryMgr = client.newQueryManager();
StructuredQueryBuilder queryBldr = new StructuredQueryBuilder();
for (int pageNo=1; pageNo < YOUR_MAXIMUM_BEFORE_STOPPING; pageNo++) {
SearchHandle resultsHandle = queryMgr.search(
queryBldr.directory(true, "/Downloads/Current/com.crc.eng.dollar/"),
new SearchHandle(),
pageNo
);
MatchDocumentSummary[] docSummaries = resultsHandle.getMatchResults();
for (MatchDocumentSummary docSummary: docSummaries) {
InputStreamHandle docHandle = docMgr.read(
docSummary.getUri(), new InputStreamHandle()
);
// ... do something with the document ...
}
if (docSummaries.length < queryMgr.getPageLength()) {
break;
}
}
DatabaseClient-client=DatabaseClientFactory.newClient(…);
GenericDocumentManager docMgr=client.newDocumentManager()
QueryManager queryMgr=client.newQueryManager();
StructuredQueryBuilder queryBldr=新StructuredQueryBuilder();
对于(int pageNo=1;pageNo<停止前的最大值;pageNo++){
SearchHandle resultsHandle=queryMgr.search(
queryBldr.directory(true,“/Downloads/Current/com.crc.eng.dollar/”,
新的SearchHandle(),
页码
);
MatchDocumentSummary[]docSummaries=resultsHandle.getMatchResults();
用于(匹配文档摘要文档摘要:文档摘要){
InputStreamHandle docHandle=docMgr.read(
docSummary.getUri(),新的InputStreamHandle()
);
//…对文档执行某些操作。。。
}
if(docSummaries.length
为了提高查询效率,请将查询选项持久化,并将代码段转换设置为空,并在创建查询生成器时标识查询选项
如果所有文档都是JSON或XML,则可以使用更具体的文档管理器
顺便说一下,在MarkLogic8中,查询将能够直接返回一页文档
有关更多信息: