我正在尝试通过MLCP
提取文档时实现信封模式我的转换模块是这样的:
function envelope(content, context)
{
var transformed ={};
transformed.Metadata = { "Created" : "Time"};
transformed.Source = content.value;
content.uri = fn.concat("/transformed/",content.uri);
content.value = transformed;
};
exports.transform = envelope;
我的MLCP命令就像这样
mlcp.bat import -host localhost -port 8000 -username admin -
password admin -mode local -input_file_path D:\Marklogic\abcd.csv -input_file_ty
pe delimited_text -document_type json -transform_module /example/
mlcp-transform.sjs -transform_function transform -output_collections transformed -ge
nerate_uri true
MLCP错误:
18/01/31 09:00:27 WARN contentpump.TransformWriter: Failed document /D:/Marklogi
c/test.pcr-0-9
18/01/31 09:00:27 WARN contentpump.TransformWriter: TypeError: Cannot read prope
rty 'uri' of undefined
18/01/31 09:00:27 WARN contentpump.TransformWriter: TypeError: Cannot read prope
rty 'uri' of undefined
我不知道为什么它无法读取我的转换模块中的uri
。
任何帮助表示赞赏
由于
答案 0 :(得分:2)
MLCP期望transform函数返回更新的content
参数。请尝试以下方法:
function envelope(content, context)
{
var transformed ={};
transformed.Metadata = { "Created" : "Time"};
transformed.Source = content.value;
content.uri = fn.concat("/transformed/",content.uri);
content.value = transformed;
return content;
};
exports.transform = envelope;
使用-output_collections
参数提供目标集合名称。您也可以使用/transformed/
或-output_uri_prefix
参数为uri添加-output_uri_replace
前缀。
您可以在此处找到有关命令行选项的文档:
http://docs.marklogic.com/guide/mlcp/import#id_23879
有关MLCP变换的文档可在此处找到:
http://docs.marklogic.com/guide/mlcp/import#id_82518
HTH!