Marklogic MLCP使用文档选择器导出所选文档

Marklogic MLCP使用文档选择器导出所选文档,marklogic,marklogic-8,mlcp,Marklogic,Marklogic 8,Mlcp,我想使用基于xpath匹配的MLCP从MarkLogic导出所选文档 mlcp export -host localhost -port 8061 -username admin -password admin -mode local -output_file_path shiv -database shiv -output_type archive -document_selector '/companymetadata/companyCode=shiv' 在这里,我想导出与此条件匹配的所有

我想使用基于xpath匹配的MLCP从MarkLogic导出所选文档

mlcp export -host localhost -port 8061 -username admin -password admin -mode local -output_file_path shiv -database shiv -output_type archive -document_selector '/companymetadata/companyCode=shiv'
在这里,我想导出与此条件匹配的所有文档,但出现以下错误

18/06/06 16:50:57 INFO contentpump.ContentPump: Job name: local_712261411_1
18/06/06 16:50:57 ERROR mapreduce.MarkLogicInputFormat: com.marklogic.xcc.exceptions.XQueryException: XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected QName_, expecting Rpar_
 [Session: user=admin, cb=shiv [ContentSource: user=admin, cb=shiv [provider: address=localhost/127.0.0.1:8061, pool=1/64]]]
 [Client: XCC/9.0-3, Server: XDBC/8.0-5.5]
in /eval, on line 4
expr:
18/06/06 16:50:57 ERROR mapreduce.MarkLogicInputFormat: Query: xquery version "1.0-ml";
import module namespace hadoop = "http://marklogic.com/xdmp/hadoop" at "/MarkLogic/hadoop.xqy";
xdmp:host-name(xdmp:host()),
hadoop:get-splits('', ''collection()/companymetadata/companyCode=shiv'','()'),
"REDACT",0,let $repf := fn:function-lookup(xs:QName('hadoop:get-splits-with-replica'),0)
return if (exists($repf)) then $repf() else ()
,0,"AUDIT",
let $f :=
    fn:function-lookup(xs:QName('xdmp:group-get-audit-event-type-enabled'), 2)
return
    if (not(exists($f)))
    then ()
    else
        let $group-id := xdmp:group()
        let $enabled-event := $f($group-id,("mlcp-copy-export-start", "mlcp-copy-export-finish"))
        let $mlcp-start-enabled :=
                if ($enabled-event[1]) then "mlcp-copy-export-start" else ()
        let $mlcp-finish-enabled :=
                if ($enabled-event[2]) then "mlcp-copy-export-finish" else ()
        return ($mlcp-start-enabled, $mlcp-finish-enabled)
18/06/06 16:50:57 ERROR contentpump.LocalJobRunner: Error getting input splits:
18/06/06 16:50:57 ERROR contentpump.LocalJobRunner: com.marklogic.xcc.exceptions.XQueryException: XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected QName_, expecting Rpar_
 [Session: user=admin, cb=shiv [ContentSource: user=admin, cb=shiv [provider: address=localhost/127.0.0.1:8061, pool=1/64]]]
 [Client: XCC/9.0-3, Server: XDBC/8.0-5.5]
in /eval, on line 4
expr:

请帮助我解决上述错误,并指导我在MLCP中使用xpath。

上有一个使用xpath的示例,因此看起来是可能的。我通常建议您先在查询控制台中使用xpath,然后在mlcp中尝试。也许你想要像这样的东西

/companymetadata[companyCode = 'shiv']

请回复Thx@asusu。。。我遇到了相同的错误
/companymetadata[companyCode='shiv']
尝试将所有命令行参数放在一个选项文件中,每个参数都放在单独的一行上。您正面临一些额外单引号的问题,上面xpath中的空白也可能会带来麻烦。。。我尝试了
mlcp导出-host localhost-username admin-password admin-port 8061-database shiv-options\u file test.txt
并且
test.txt
具有
-document\u选择器/companymetadata[companyCode=shiv]-mode local-output_file_path shiv1-output_type archive
此选项现在mlcp命令正在执行,没有任何错误,但现在它也没有导出记录。我得到的输出为“估计的输入记录:2个输入记录:0个输出记录:0”您继续使用无效的xpath表达式。“/companymetadata[companyCode=shiv]”无效。您需要在“shiv”值周围加引号。您确实需要在查询控制台中使用该表达式,直到得到一个语法正确并产生所需结果的表达式为止。Mlcp将简单地接受您提供的内容并与fn:collection一起使用,因此:fn:collection/companymetadata[companyCode=“shiv”].Thx@kcoleman对于您的宝贵意见,现在它正在进行小的修改。