【问题标题】:Query documents into JSON format Marklogic将文档查询成 JSON 格式 Marklogic
【发布时间】:2020-11-17 14:38:08
【问题描述】:

我想先使用 QBE 查询来获取匹配的文档,然后将文档保存为 JSON 格式。所以我使用 JacksonHandle 和 JSONDocumentManager。但是我拿不到文件。代码如下:

JSONDocumentManager jdm = databaseClient.newJSONDocumentManager();
StringHandle newHandle = new StringHandle(JSONQuery).withFormat(Format.JSON);
RawQueryByExampleDefinition querydef = queryMgr.newRawQueryByExampleDefinition(newHandle);
JacksonHandle jsonResults = new JacksonHandle();
DocumentPage documents = jdm.search(querydef, 1, jsonResults);

我该如何解决这个问题?

【问题讨论】:

    标签: json search marklogic


    【解决方案1】:

    search() 重载的第三个参数获取搜索摘要而不是文档。

    DocumentPage 可迭代对象提供给文档。

    按照以下方式做某事有用吗?

    JSONDocumentManager jdm = databaseClient.newJSONDocumentManager();
    StringHandle newHandle = new StringHandle(JSONQuery).withFormat(Format.JSON);
    RawQueryByExampleDefinition querydef =
        queryMgr.newRawQueryByExampleDefinition(newHandle);
    DocumentPage page = jdm.search(querydef, 1);
    for (DocumentRecord document: page) {
        JacksonHandle documentHandle = document.nextContent​(new JacksonHandle());
        JsonNode documentContent = documentHandle.get();
        // ... operate on the document content ...
    }
    

    有关详细信息,请参阅:

    https://docs.marklogic.com/javadoc/client/com/marklogic/client/document/DocumentPage.html

    希望对您有所帮助,

    【讨论】:

    • 感谢您的回复。我在 for 循环中感到困惑,我无法调用 nextContent 方法。似乎您没有使用 for 循环中定义的文档。我应该使用 document.nextContent() 吗?
    • 是的,这是我的模型中的一个错字。固定。
    猜你喜欢
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 2022-08-02
    • 1970-01-01
    相关资源
    最近更新 更多