Marklogic内容泵(MLCP)以静默方式忽略以下划线

时间:2015-12-24 08:06:50

标签: 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, ''”

mlcp始终忽略“/Users/test/Downloads/tempfolder33/schemas/bwb/_manifest.xml”等文件名。

有关如何解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:6)

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

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

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

希望这有帮助

彼得