[MarkLogic Dev General] MLCP input query

Prasanth N V R prasanth.nvr04 at gmail.com
Sun Jan 31 14:17:59 PST 2016


Thanks Peter.

It worked finally!
mlcp.bat copy -input_host localhost -input_port 5767 -input_username admin
-input_password admin ^
-output_host localhost -output_port 5767 -output_username admin
-output_password admin ^
-input_database samplestack-modules ^
-output_database Documents ^
-query_filter "<cts:directory-query depth=\"infinity\" xmlns:cts=\"
http://marklogic.com/cts\
"><cts:uri>/Default/samplestack/rest-api/options/</cts:uri></cts:directory-query>"

Thanks all for the timely help!

Kind feedback -
In the mlcp -query_filter, giving double quotes and escaping it in a real
time(large queries) would be tedious.
So, MarkLogic MLCP can provide an additional option much similar to the
XQSync INPUT_QUERY which takes only uris as input and process it in
parallel threads.
It would be really great if this is implemented in MLCP.

Thanks,
Prasanth

On Thu, Jan 28, 2016 at 4:26 AM, Peter Kester <Peter.Kester at marklogic.com>
wrote:

> This will also work on the command line
> :
> -query_filter "<cts:directory-query depth=\”infinity\" xmlns:cts=\"
> http://marklogic.com/cts
> \"><cts:uri>/Default/samplestack/rest-api/options/</cts:uri></cts:directory-query>”
>
> You need to put double quotes around the cts query and escape all double
> quotes inside
>
>
>
>
> From: <general-bounces at developer.marklogic.com> on behalf of Prasanth N V
> R
> Reply-To: MarkLogic Developer Discussion
> Date: Thursday 28 January 2016 00:16
> To: MarkLogic Developer Discussion
> Subject: Re: [MarkLogic Dev General] MLCP input query
>
> I just tried the same.
> mlcp.bat copy -input_host localhost -input_port 5767 -input_username admin
> -input_password admin ^
> -output_host localhost -output_port 5767 -output_username admin
> -output_password admin ^
> -input_database Documents ^
> -output_database Documents ^
> -query_filter
> 'cts:element-value-query(xs:QName("Type"),"TuchtrechtelijkeInstantie")'
>
> But still getting the error.
> ERROR mapreduce.MarkLogicInputFormat:
> com.marklogic.xcc.exceptions.XQueryException: XDMP-UNEXPECTED:
> (err:XPST0003) Unexpected token syntax error, unexpected QName_, expecting
> Rpar_ [Session: user=admin, cb=Documents [ContentSource: user=admin,
> cb=Documents
>
> Please help me to solve this.
>
> Thanks,
> Prasanth
>
> On Tue, Jan 26, 2016 at 12:34 PM, Peter Kester <Peter.Kester at marklogic.com
> > wrote:
>
>> You could try this:
>> -query_filter
>> 'cts:element-value-query(xs:QName("Type"),"TuchtrechtelijkeInstantie”)'
>> This will be expanded to
>>
>> cts:search(/,cts:element-value-query(xs:QName("Type"),"TuchtrechtelijkeInstantie”))
>>
>> Regards,
>>
>> Peter
>>
>>
>> From: <general-bounces at developer.marklogic.com> on behalf of Prasanth N
>> V R
>> Reply-To: MarkLogic Developer Discussion
>> Date: Tuesday 26 January 2016 14:25
>>
>> To: MarkLogic Developer Discussion
>> Subject: Re: [MarkLogic Dev General] MLCP input query
>>
>> Thanks Peter.
>>
>> -directory_filter works for me. It is able to copy documents based on
>> this.
>>
>> In general, I am curious to know how to send the uris as INPUT_QUERY
>> similar to how we do in XQSync.
>>
>> In XQSync, the INPUT_QUERY will be given as -
>> cts:uris((),(),cts:element-value-query(xs:QName("bucket"),"samplequestion")).
>> This takes all the uris matching this query and processed.
>>
>> But I do not know how to achieve this in MLCP.
>>
>> If you suggest some working example it would be great.
>>
>> On Tue, Jan 26, 2016 at 3:16 AM, Peter Kester <Peter.Kester at marklogic.com
>> > wrote:
>>
>>> Hi Prasanth,
>>>
>>> Just checked the docs:
>>>
>>> You need to quote the cts:query
>>> Sou your query_filter needs to be:
>>> -query_filter
>>> 'cts:directory-query("/Default/samplestack/rest-api/options/","infinity”)’
>>> according to the doc, but you would probably be better off with the
>>> directory_filter option if you just want to select documents from a given
>>> directory inside ML.
>>> Check this section of the documentation:
>>> https://docs.marklogic.com/guide/mlcp/export#id_47556
>>>
>>> HTH
>>>
>>> Peter
>>>
>>>
>>> From: <general-bounces at developer.marklogic.com> on behalf of Prasanth N
>>> V R
>>> Reply-To: MarkLogic Developer Discussion
>>> Date: Tuesday 26 January 2016 04:10
>>> To: MarkLogic Developer Discussion
>>> Subject: Re: [MarkLogic Dev General] MLCP input query
>>>
>>> Thanks for the reply Peter.
>>>
>>> I tried giving it as cts:query(in xml format).
>>> -query_filter '<cts:directory-query depth="infinity" xmlns:cts="
>>> http://marklogic.com/cts
>>> "><cts:uri>/Default/samplestack/rest-api/options/</cts:uri></cts:directory-query>'
>>>
>>> But it is throwing error like - < was unexpected at this time.
>>>
>>> In general, I am curious to know how to send the uris as INPUT_QUERY
>>> similar to how we do in XQSync.
>>>
>>> In XQSync, the INPUT_QUERY will be given as -
>>> cts:uris((),(),cts:directory-query("/Default/samplestack/rest-api/options/","infinity")).
>>> This takes all the uris matching this query and processed.
>>>
>>> But I do not know how to achieve this in MLCP.
>>>
>>> Thanks,
>>> Prasanth
>>>
>>> On Mon, Jan 25, 2016 at 2:58 AM, Peter Kester <
>>> Peter.Kester at marklogic.com> wrote:
>>>
>>>> Hi Prasanth,
>>>>
>>>> Try making that cts:directory-query an xml representation.
>>>> Like this:
>>>> -query-filter <cts:directory-querydepth="infinity"xmlns:cts="
>>>> http://marklogic.com/cts">
>>>> <cts:uri>
>>>> /Default/samplestack/rest-api/options/
>>>> </cts:uri>
>>>> </cts:directory-query>
>>>>
>>>> Doc says:
>>>>
>>>> -query_filter *string*
>>>>
>>>> Specifies a query to apply when selecting documents for export. The
>>>> argument must be the XML serialization of a cts:query or JSON serialization
>>>> of a cts.query. Only documents matching the query are considered for
>>>> export; false positives are possible. For details, seeControlling What
>>>> is Exported, Copied, or Extracted
>>>> <https://docs.marklogic.com/guide/mlcp/export#id_47556>.
>>>>
>>>> HTH.
>>>>
>>>> Peter
>>>>
>>>> From: <general-bounces at developer.marklogic.com> on behalf of Prasanth
>>>> N V R
>>>> Reply-To: MarkLogic Developer Discussion
>>>> Date: Monday 25 January 2016 04:59
>>>> To: MarkLogic Developer Discussion
>>>> Subject: Re: [MarkLogic Dev General] MLCP input query
>>>>
>>>> Thanks for you reply Christopher.
>>>>
>>>> Yes. I tried that too. But I am getting error.
>>>>
>>>> mlcp.bat copy -input_host localhost -input_port 5767 -input_username
>>>> admin -input_password admin ^
>>>> -output_host localhost -output_port 5767 -output_username admin
>>>> -output_password admin ^
>>>> -input_database samplestack-modules ^
>>>> -output_database Documents ^
>>>> -query_filter
>>>> cts:directory-query("/Default/samplestack/rest-api/options/","infinity")
>>>>
>>>> ERROR mapreduce.MarkLogicInputFormat:
>>>> com.marklogic.xcc.exceptions.XQueryException: XDMP-DOCROOTTEXT:
>>>> xdmp:unquote("cts:directory-query(/Default/samplestack/rest-api/options/,infin...")
>>>> -- Invalid root text
>>>> "cts:directory-query(/Default/samplestack/rest-api/options/,infinity)" at
>>>>  line 1
>>>>  [Session: user=admin, cb=samplestack-modules [ContentSource:
>>>> user=admin, cb=samplestack-modules
>>>>
>>>> Thanks,
>>>> Prasanth
>>>>
>>>> On Sun, Jan 24, 2016 at 7:27 PM, Christopher Hamlin <cbhamlin at gmail.com
>>>> > wrote:
>>>>
>>>>> It looks to me like you are sending in a search, not a query.
>>>>>
>>>>> So maybe try
>>>>>
>>>>> -query_filter cts:directory-query("/Default/
>>>>> samplestack/rest-api/options/","infinity")
>>>>>
>>>>> instead.
>>>>>
>>>>>
>>>>> On Sun, Jan 24, 2016 at 7:22 PM, Prasanth N V R <
>>>>> prasanth.nvr04 at gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I am trying to copy documents from one DB to another DB using MLCP.
>>>>>>
>>>>>> Here is my command(running in Windows)
>>>>>> mlcp.bat copy -input_host localhost -input_port 5767 -input_username
>>>>>> admin -input_password admin ^
>>>>>> -output_host localhost -output_port 5767 -output_username admin
>>>>>> -output_password admin ^
>>>>>> -input_database samplestack-modules ^
>>>>>> -output_database Documents ^
>>>>>> -query_filter
>>>>>> cts:search(doc(),cts:directory-query("/Default/samplestack/rest-api/options/","infinity"))
>>>>>>
>>>>>> But am getting error when i execute the above command.
>>>>>> ERROR mapreduce.MarkLogicInputFormat:
>>>>>> com.marklogic.xcc.exceptions.XQueryException: XDMP-DOCROOTTEXT:
>>>>>> xdmp:unquote("cts:search(doc(),cts:directory-query(/Default/samplestack/rest-a...")
>>>>>> -- Invalid root text
>>>>>> "cts:search(doc(),cts:directory-query(/Default/samplestack/rest-api/options/,infinity))"
>>>>>> at  line 1
>>>>>>  [Session: user=admin, cb=samplestack-modules [ContentSource:
>>>>>> user=admin, cb=samplestack-modules
>>>>>>
>>>>>>
>>>>>> How can I pass a query in command line to select matching documents?
>>>>>>
>>>>>> Thanks,
>>>>>> Prasanth
>>>>>>
>>>>>> _______________________________________________
>>>>>> General mailing list
>>>>>> General at developer.marklogic.com
>>>>>> Manage your subscription at:
>>>>>> http://developer.marklogic.com/mailman/listinfo/general
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> General mailing list
>>>>> General at developer.marklogic.com
>>>>> Manage your subscription at:
>>>>> http://developer.marklogic.com/mailman/listinfo/general
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> General mailing list
>>>> General at developer.marklogic.com
>>>> Manage your subscription at:
>>>> http://developer.marklogic.com/mailman/listinfo/general
>>>>
>>>>
>>>
>>> _______________________________________________
>>> General mailing list
>>> General at developer.marklogic.com
>>> Manage your subscription at:
>>> http://developer.marklogic.com/mailman/listinfo/general
>>>
>>>
>>
>> _______________________________________________
>> General mailing list
>> General at developer.marklogic.com
>> Manage your subscription at:
>> http://developer.marklogic.com/mailman/listinfo/general
>>
>>
>
> _______________________________________________
> General mailing list
> General at developer.marklogic.com
> Manage your subscription at:
> http://developer.marklogic.com/mailman/listinfo/general
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://developer.marklogic.com/pipermail/general/attachments/20160131/19c49c83/attachment-0001.html 


More information about the General mailing list