如何使用CoRB按处理的URI生成多个输出文件?
实现CoRB作业按URI生成独立输出文件
要让每个被处理的URI对应一个独立输出文件,可通过以下配置和调整实现:
核心配置调整
- 替换默认输出处理模块:将CoRB的
PROCESS-MODULE参数设置为com.marklogic.developer.corb.ExportToFileBatchListener,这个模块原生支持为每个URI生成单独文件。 - 定义输出文件名规则:设置
EXPORT-FILE-NAME-TEMPLATE参数,指定文件命名逻辑。比如:
其中EXPORT-FILE-NAME-TEMPLATE=./output/{URINAME}.xml{URINAME}会自动替换为当前URI的文件名部分(剔除路径);如果URI包含特殊字符,建议用{URI-ENCODED}获取编码后的URI作为文件名,避免非法字符问题:EXPORT-FILE-NAME-TEMPLATE=./output/{URI-ENCODED}.txt
额外注意事项
- 提前创建好输出目录(比如示例中的
./output),CoRB不会自动生成不存在的目录。 - 若你的process函数返回的是URI本身,需确保
PROCESS-TASK脚本返回的内容与当前URI匹配,保证每个文件写入对应的数据。
示例配置片段
PROCESS-MODULE=com.marklogic.developer.corb.ExportToFileBatchListener EXPORT-FILE-NAME-TEMPLATE=./output/processed-{URINAME}.json THREAD-COUNT=4 URIS-MODULE=/corb/get-uris.xqy PROCESS-TASK=/corb/process-uri.xqy
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

