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
