Marklogic 内容泵 (MLCP) 默默地忽略以下划线开头的文件

标签 marklogic mlcp

我正在尝试导入一个文档集合,其中一些文件以下划线开头。 Marklogic mlcp 8.0.4 似乎在默默地跳过这些文件,尽管 Marklogic 本身似乎对这样的文件名没有问题。

这是我正在使用的 mlcp 命令:

mlcp-8.0-4/bin/mlcp.sh import -host localhost -port 8012 -username xxxxx -password xxxx -mode local -input_file_path /Users/test/Downloads/tempfolder33/ -output_uri_replace "^.*tempfolder33,''"

像“/Users/test/Downloads/tempfolder33/schemas/bwb/_manifest.xml”这样的文件名总是被 mlcp 忽略。

关于如何解决这个问题有什么想法吗?

最佳答案

MarkLogic 使用定义抽象 FileInputFormat 类的 hadoop-mapreduce-client-core 库 (org.apache.hadoop)。此类使用始终处于事件状态的私有(private)静态最终 PathFilter hiddenFileFilter。 此过滤器定义以“_”和“.”开头的文件。隐藏,无论您自己定义的过滤器如何,这些文件都将被自动跳过。

private static final PathFilter hiddenFileFilter = new PathFilter() {
    public boolean accept(Path p) {
        String name = p.getName();
        return !name.startsWith("_") && !name.startsWith(".");
    }
};

如果您精通 Java,可以从此处下载一份 mlcp 源代码 https://developer.marklogic.com/products/mlcp并尝试覆盖 FileAndDirectoryInputFormat 类中 FileInputFormat 类的 protected listStatus 方法,以不包括 hadoop-mapreduce-client-core 库中 FileInputFormat 类的 hiddenFileFilter。

希望对你有帮助

彼得

关于Marklogic 内容泵 (MLCP) 默默地忽略以下划线开头的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34449393/

相关文章:

amazon-s3 - xquery api将数据从marklogic上传到亚马逊s3

java - MarkLogic Java XCC 异常

xml - 片段 XML 文件

marklogic - 使用 MLCP 复制数据时出现异常

java - 无法从 MarkLogic Java API 访问文件

Marklogic - 在 java api 中将 pojo 作为 json 文档插入

Marklogic如何将xquery文件存储到模块数据库中

marklogic - 使用自动编码将 CSV(或 TSV)加载到 MarkLogic 中

gradle - 带有自定义转换模块的 MLCP 导入

marklogic - mlcp 不会加载目录中的大量文件