java - 从 MarkLogic Java API 获取最后修改的属性

标签 java marklogic

我试图弄清楚如何通过 Java API 访问存储在 MarkLogic 中的文件的 last-modified 属性,但结果是空的。

我尝试通过元数据获取它,但对于一个简单的 XML 文件,我根本没有看到任何元数据。我有一个测试文件存储在 MarkLogic 中。当我运行此代码时:

    DocumentMetadataHandle metadata = new DocumentMetadataHandle();

    XMLDocumentManager docMgr = client.newXMLDocumentManager();
    docMgr.read("/path/test_file.xml", metadata, handle);

    System.out.println("Output: " + handle.get());

    System.out.println("Properties:\n");
    for (Map.Entry<QName,Object> prop : metadata.getProperties().entrySet()) {
        System.out.println("Prop: " + prop.getKey() + ": " + prop.getValue());
    }       

...我看到了我期望的对象,但没有属性。

我做错了什么吗?我是否需要调整数据库定义中的某些内容才能访问此信息?

最佳答案

检查数据库配置以确保启用“维护上次修改”。该设置位于 /database-admin.xqy 屏幕上。

接下来,使用端口 8002 上的查询控制台验证属性是否可用。这是一个 XQuery 接口(interface),但您只需要一个简单的查询:xdmp:document-properties('some-uri') 其中 some-uri 是您的文档 URI。

如果 xdmp:document-properties 有效,那么您可以更加确信问题出在 Java 层。

关于java - 从 MarkLogic Java API 获取最后修改的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14760665/

相关文章:

Java 釉面列表 : how to update a table row

java - 无法启动 Java 客户端 1.5.0 NoSuchMethodException

java - 为什么这两个内容相同的 jar 文件的文件大小不同?

java - 当两个事务同时发生并相互影响时,根据另一个表的数据更新一行表的方法是什么

xml - 如何从 XML 中获取所有属性名称,而不是特定节点的值?

使用 Rest API 时出现 Marklogic SVC-BAD 代码点错误

xml - XQuery 中基于变量的动态排序(排序依据)

xml - 如何使用 Java API 在 Marklogic 中搜索 XML 标签或 JSON 键

xml - MarkLogic:使用 cts:search 查找没有文本的元素

java - RSocket 服务器失败时如何恢复与 RSocket 的 session