我试图弄清楚如何通过 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/