咨询:使用MLCP导入大PDF至MarkLogic失败,能否拆分导入后合并?
大PDF导入MarkLogic的解决方案
你的问题是1GB的PDF无法导入MarkLogic,报错提示:
跳过文件:/data2022/ABO2022-129.pdf中的记录(),原因:文件过大:13040600,请使用流处理选项。
以下是两种解决方案:
一、优先方案:用MLCP流处理直接导入
这是最简便的方式,无需拆分文件:
- 在MLCP导入命令中添加
-streaming true参数,让MLCP以流模式处理大文件,避免一次性加载整个PDF到内存。 - 示例命令:
mlcp import -host 你的主机地址 -port 端口号 -username 用户名 -password 密码 -input_file_path /data2022/ABO2022-129.pdf -input_file_type documents -streaming true - 该方式会将整个PDF作为单个文档存入数据库,不需要后续合并操作。
二、拆分导入后合并的备选方案
如果必须拆分文件再处理,可按以下步骤操作:
- 拆分PDF:用第三方工具(如
pdftk或qpdf)将大PDF拆分为小文件。- 示例用
qpdf按每页拆分(或指定页数拆分):
(上述命令每100页生成一个小PDF文件)qpdf /data2022/ABO2022-129.pdf --split-pages=100 /data2022/split-ABO2022-129-%d.pdf
- 示例用
- 导入拆分文件:用MLCP将所有小PDF导入MarkLogic,建议给每个文档添加统一标识(比如自定义属性
original-pdf-id),方便后续识别归属。 - 合并PDF:从数据库导出所有拆分后的小PDF,再用第三方工具合并回单个文件;也可在MarkLogic中通过XQuery调用外部合并工具,但前者操作更直接。
注意:拆分合并会增加操作步骤,还可能存在格式兼容性风险,优先推荐流处理方案。
内容的提问来源于stack exchange,提问作者thichxai
相关产品推荐
相关产品推荐

