我正在尝试使用mlcp.bat提取以下具有URI的文档:/category/[2014]xxx.xml
这是与参数一起使用的mlcp命令:
mlcp.bat export -host localhost -port 8000 -username admin -password admin -mode local -database database-content -output_file_path C:/mlcp/bin/xmlexport -document_selector '/CaseReport/Metadata[id="16594-SSP-M"]' -indented true
执行上述命令后,没有提取任何文档:(以下是mlcp输出:
INFO contentpump.ContentPump: Job name: local_320491878_1
INFO mapreduce.MarkLogicInputFormat: Fetched 1 forest splits.
INFO mapreduce.MarkLogicInputFormat: Made 2 split(s).
INFO contentpump.LocalJobRunner: completed 0%
INFO contentpump.LocalJobRunner: com.marklogic.mapreduce.MarkLogicCounter:
INFO contentpump.LocalJobRunner: ESTIMATED_INPUT_RECORDS: 35722
INFO contentpump.LocalJobRunner: INPUT_RECORDS: 0
INFO contentpump.LocalJobRunner: OUTPUT_RECORDS: 0
INFO contentpump.LocalJobRunner: Total execution time: 26 sec
==更新==这是带有uri/category/[2014]xxx.XML 的XML文档内容的前3行
<?xml version="1.0" encoding="UTF-8"?>
<CaseReport xlink:type="extended" category="unreported" neutralcitation="[2014] xxx" year="" volume="" series="" pageno="" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:exslt="http://exslt.org/common">
<Metadata id="16594-SSP-M">
-document_selector
选项要求您指定一个XPath,用于从数据库中选择文档。您正在提供文档的URI。
相反,使用-query_filter
并指定一个查询,该查询使用cts:document-query()
以该URI进行选择:cts:document-query("/category/[2014] xxx.xml")
这是一个序列化为XML:的查询示例
-query_filter
<cts:document-query xmlns:cts="http://marklogic.com/cts"><cts:uri>/category/[2014] xxx.xml</cts:uri></cts:document-query>
这是一个序列化为JSON:的查询示例
-query_filter
{"documentQuery":{"uris":["/category/[2014] xxx.xml"]}}
为了避免命令行上的查询出现引号和转义问题,最好将此选项放入选项文件中,然后将-option_file
选项与该文件的路径一起使用。