2

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

我尝试通过元数据访问它,但对于一个简单的 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());
    }       

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

难道我做错了什么?我是否需要调整数据库定义中的某些内容以使这些信息可以访问?

4

1 回答 1

2

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

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

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

于 2013-02-07T20:54:23.523 回答