Marklogic 内容泵 (MLCP) 默默地忽略以下划线开头的文件
Marklogic content pump (MLCP) silently ignores files starting with underscore
我正在尝试导入一些文件以下划线开头的文档集。似乎 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 class 的 hadoop-mapreduce-client-core 库 (org.apache.hadoop)。 class 使用始终处于活动状态的 private static final 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 class 中 FileInputFormat class 的受保护的 listStatus 方法class 不包含来自 hadoop-mapreduce-client-core 库的 FileInputFormat class 的 hiddenFileFilter。
希望对您有所帮助
彼得
我正在尝试导入一些文件以下划线开头的文档集。似乎 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 class 的 hadoop-mapreduce-client-core 库 (org.apache.hadoop)。 class 使用始终处于活动状态的 private static final 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 class 中 FileInputFormat class 的受保护的 listStatus 方法class 不包含来自 hadoop-mapreduce-client-core 库的 FileInputFormat class 的 hiddenFileFilter。
希望对您有所帮助
彼得