marklogic - 如何在 Marklogic 中获取与 URI 模式匹配的所有文档

标签 marklogic

我开始学习用于 marklogic 的 java api,想知道的是如何获取符合特定 URI 模式的所有文档。

例如我想从 URI 模式所在的 ML 数据库中获取所有文档
“/下载/当前/com.crc.eng.dollar/*”

最佳答案

您可以查询目录中的文档。应该按照以下方式工作:

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;
    }
}

为了使查询更高效,请在创建查询构建器时使用设置为空的代码段转换来保留查询选项并标识查询选项。

如果所有文档都是 JSON 或 XML,您可以使用更具体的文档管理器。

顺便说一下,在 MarkLogic 8 中,查询将能够直接返回一页文档。

想要查询更多的信息:

http://docs.marklogic.com/javadoc/client/index.html
http://docs.marklogic.com/guide/java

关于marklogic - 如何在 Marklogic 中获取与 URI 模式匹配的所有文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27417329/

相关文章:

xquery - 如何使用 xdmp :node-replace()? 返回完整文档

Marklogic - 何时清除已删除的片段?

marklogic - cts :element-query vs cts:path-range-query performance

ajax - MarkLogic HTTP 服务器 : Set up CORS headers

xquery - Marklogic - 如何获取具有角色的用户列表

Marklogic:元素范围索引 VS 元素词词典

marklogic - 如何获取光学查询返回的记录的uri

full-text-search - Marklogic 自动完成功能

marklogic - 如何在 MarkLogic 数据库服务器中启用集合词典

java - MarkLogic 文档标识列