3

一部のファイルがアンダースコアで始まるドキュメント コレクションをインポートしようとしています。Marklogic自体はそのようなファイル名に問題がないように見えますが、Marklogic mlcp 8.0.4はこれらのファイルを黙ってスキップしているようです。

これは私が使用している 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 によって常に無視されます。

これを修正する方法について何か考えはありますか?

4

1 に答える 1

6

MarkLogic は、抽象的な FileInputFormat クラスを定義する hadoop-mapreduce-client-core ライブラリ (org.apache.hadoop) を使用します。このクラスは、常にアクティブな 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 クラスの FileInputFormat クラスから保護された listStatus メソッドをオーバーライドして、hiddenFileFilter を含めないようにしてください。 hadoop-mapreduce-client-core ライブラリの FileInputFormat クラスから。

お役に立てれば

ピーター

于 2015-12-28T10:23:20.187 に答える