Thank you very much, Indy!  I did not understand how I would create a range
index, but I think I do now and I'll also read through the documentation
following your pointers.  Your help is greatly appreciated.

-Hans

On Thu, Jun 23, 2016 at 9:52 AM, Indrajeet Verma <[email protected]>
wrote:

> You can try with path range indexes as well and see which query will give
> you fast results. Go through page no 29 and 30 of the pdf
> "inside-marklogic-server-r7.pdf" for more information
>
> Regards,
> Indy
>
> On Thu, Jun 23, 2016 at 1:12 PM, Indrajeet Verma <
> [email protected]> wrote:
>
>> Hi Hans,
>>
>> If you use range queries then you need to create required indexes
>> manually/via script. As mention in my previous email, create range
>> indexes on elements "j", "k", "d" and "f" to make it work by going
>> Configure-->databases>yourdatabase-->Element range indexes.
>>
>> Please refer https://docs.marklogic.com/guide/admin/range_index for more
>> information.
>>
>> For your question regarding universal indexing, XPath and cts queries,
>> please refer
>> https://developer.marklogic.com/pubs/architecture/inside-marklogic-server-r7.pdf
>>
>>
>> Hope that helps!
>>
>> Regards,
>> Indy
>>
>>
>> On Thu, Jun 23, 2016 at 12:03 PM, Hans Hübner <
>> [email protected]> wrote:
>>
>>> Indy,
>>>
>>> thank you for your suggestion!  If I understand you correctly, the way
>>> to go about is to build up a query manually rather than asking MarkLogic to
>>> figure out a query plan based on the XPath provided?
>>>
>>> I have tried your solution, but it seems that some manual indexing is
>>> required to make it work (which is also mentioned in the documentation for
>>> cts:element-values):
>>>
>>> [1.0-ml] XDMP-ELEMRIDXNOTFOUND: cts:element-values(fn:QName("","k"), (),
>>> (), cts:and-query((cts:document-query("file1.xml"),
>>> cts:element-value-query(fn:QName("","j"), "123", ("lang=en"), 1)), ())) --
>>> No element range index for k http://marklogic.com/collation/
>>>
>>> I will work myself from here, but any suggestion as to how to solve this
>>> or what other approaches exist would be greatly appreciated!
>>>
>>> Thanks,
>>> Hans
>>>
>>> On Thu, Jun 23, 2016 at 7:42 AM, Indrajeet Verma <
>>> [email protected]> wrote:
>>>
>>>> Hi Hans,
>>>>
>>>> You might try below code and see if that helps in improving the
>>>> performance. You need to create range indexes on elements "j", "k", "d" and
>>>> "f".
>>>>
>>>> BTW what values the elements "k" and "f" does contain? Is it numeric,
>>>> string or sentences ? If it contains para/sentences then you should think
>>>> some different way.
>>>>
>>>> let $q1 := cts:and-query((cts:document-query("file1.xml"),
>>>> cts:element-range-query(xs:QName("j"), '=','123')))
>>>> for $key in cts:element-values(xs:QName("k"), (), (), $q1)
>>>> let $q2 := cts:and-query((cts:document-query("file2.xml"),
>>>> cts:element-range-query(xs:QName("d"), '=',$key)))
>>>> let $data-from-file-2 := cts:element-values(xs:QName("f"), (), (), $q2)
>>>> return
>>>>   <pre>
>>>>    $key => $data-from-file-2
>>>>   </pre>
>>>>
>>>>
>>>> Regards,
>>>> Indy
>>>>
>>>> On Thu, Jun 23, 2016 at 10:23 AM, Hans Hübner <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I have a beginner's question regarding indexing:  As far as I
>>>>> understand, MarkLogic indexes all data according to global indexing rules.
>>>>> Thus, in general, all accesses to data should be "fast" when the universal
>>>>> index can be used.
>>>>>
>>>>> I am trying to combine data from two XML files into a report, and
>>>>> throughput is not sufficient.  I'm now looking for ways to improve the
>>>>> performance of my XQuery, either by adding indexes to MarkLogic or by
>>>>> improving the query so that it runs faster.  Here's what I have:
>>>>>
>>>>> for $key in doc("file1.xml")/a/b/c/d/e/f/g/h/i[j = 123]/k/text()
>>>>> let $data-from-file-2 := doc("file2.xml")/a/b[c/d = $key]/e/f/text()
>>>>> return
>>>>>   <pre>
>>>>>    $key => $data-from-file-2
>>>>>   </pre>
>>>>>
>>>>> Thus, I'm iterating over some subset of the nodes in file1.xml,
>>>>> selecting data from file2.xml for each of the nodes selected.  Both
>>>>> file1.xml and file2.xml are in a files residing in MarkLogic.  They have a
>>>>> pre-determined format and contain roughly 100,000 elements matching each 
>>>>> of
>>>>> the two paths.
>>>>>
>>>>> It seems that the performance of the second of the two XPaths
>>>>> (doc("file2.xml")/a/b[c/d = $key]/e/f/text()) is most important.  Ideally,
>>>>> I would like this lookup to complete in under a millisecond, but it seems
>>>>> to need 75ms right now.
>>>>>
>>>>> Any help speeding this up would be greatly appreciated!
>>>>>
>>>>> Thanks,
>>>>> Hans
>>>>>
>>>>> --
>>>>> LambdaWerk GmbH
>>>>> Oranienburger Straße 87/89
>>>>> 10178 Berlin
>>>>> Phone: +49 30 555 7335 0
>>>>> Fax: +49 30 555 7335 99
>>>>>
>>>>> HRB 169991 B Amtsgericht Charlottenburg
>>>>> USt-ID: DE301399951
>>>>> Geschäftsführer:  Hans Hübner
>>>>>
>>>>> http://lambdawerk.com/
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> General mailing list
>>>>> [email protected]
>>>>> Manage your subscription at:
>>>>> http://developer.marklogic.com/mailman/listinfo/general
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> General mailing list
>>>> [email protected]
>>>> Manage your subscription at:
>>>> http://developer.marklogic.com/mailman/listinfo/general
>>>>
>>>>
>>>
>>>
>>> --
>>> LambdaWerk GmbH
>>> Oranienburger Straße 87/89
>>> 10178 Berlin
>>> Phone: +49 30 555 7335 0
>>> Fax: +49 30 555 7335 99
>>>
>>> HRB 169991 B Amtsgericht Charlottenburg
>>> USt-ID: DE301399951
>>> Geschäftsführer:  Hans Hübner
>>>
>>> http://lambdawerk.com/
>>>
>>>
>>>
>>> _______________________________________________
>>> General mailing list
>>> [email protected]
>>> Manage your subscription at:
>>> http://developer.marklogic.com/mailman/listinfo/general
>>>
>>>
>>
>
> _______________________________________________
> General mailing list
> [email protected]
> Manage your subscription at:
> http://developer.marklogic.com/mailman/listinfo/general
>
>


-- 
LambdaWerk GmbH
Oranienburger Straße 87/89
10178 Berlin
Phone: +49 30 555 7335 0
Fax: +49 30 555 7335 99

HRB 169991 B Amtsgericht Charlottenburg
USt-ID: DE301399951
Geschäftsführer:  Hans Hübner

http://lambdawerk.com/
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to