Some more thoughts on thisÅ 

<group>
  <a>a1</a>
<a>a1</a>

<a>a1</a>

<a>a1</a>




On 26/08/2013 20:13, "Whitby, Rob" <[email protected]> wrote:

>Thanks Mike,
>
>I was thinking about using positions, and the ordered option is a nice
>trick I didn't see. Unfortunately in reality there are other elements
>inside author that we also need to do co-occurrences on so the proximity
>would have to be a guess on the max safe distance without hitting the next
>author. Might still be possible though, it would certainly be simpler than
>multiple fragment roots.
>
>I also thought of copying the authors into a separate document with the
>fragment root on author just for the co-occurrence calculations.
>
>What I really need is a "same parent element" option on co-occurrences :)
>
>Cheers,
>Rob
>
>
>On 26/08/2013 19:46, "Michael Blakeley" <[email protected]> wrote:
>
>>Position lookups should work better than sub-fragments for those queries.
>>To test this I believe you'll have to activate word-positions,
>>element-word-positions, and element-value-positions in the database.
>>
>>For Q1 try wrapping the sibling terms in cts:element-query. I think that
>>will work, but if it doesn't you should be able to use cts:near-query
>>instead.
>>
>>For Q2, and add positional options to the
>>cts:element-value-co-occurrences call. You'll probably want
>>'proximity=1', 'ordered', and always put 'country' before 'orgname'.
>>
>>If you want to stick with fragments for some other reason, that duplicate
>>data idea is viable. Or
>>http://docs.marklogic.com/cts:document-fragment-query might help.
>>
>>-- Mike
>>
>>On 26 Aug 2013, at 01:45 , "Whitby, Rob" <[email protected]> wrote:
>>
>>> I could use some help with fragment roots, I've never had to mess with
>>> them before.. here's a sample document:
>>> 
>>> <doc>
>>>  <content/> 
>>>  <authors>
>>>    <author>
>>>      <country>UK</country>
>>>      <orgname>A</orgname>
>>>    </author>
>>>    <author>
>>>      <country>UK</country>
>>>      <orgname>A</orgname>
>>>    </author>
>>>    <author>
>>>      <country>India</country>
>>>      <orgname>C</orgname>
>>>    </author>
>>>  </authors>
>>> </doc>
>>> 
>>> There are range indexes on country and orgname.
>>> 
>>> I'm trying to configure fragment roots to enable 2 types of query:
>>> 
>>> Q1. search doc nodes with range query on country.
>>>    cts:search(/doc, cts:element-range-query(xs:QName("country"), "=",
>>> "UK"), "unfiltered")
>>> 
>>> Q2. co-occurrences on country and orgname - in the same author.
>>>    cts:element-value-co-occurrences(xs:QName("country"),
>>> xs:QName("orgname"))
>>> 
>>> With no fragment roots defined:
>>> Q1. Works as expected
>>> Q2. doesn't restrict matches to within author node, so get pairs
>>>(India,
>>> A), (UK, C).
>>> 
>>> With fragment roots defined on doc and author:
>>> Q1. Returns 2 results - one for each author fragment
>>> Q2. Works as expected
>>> 
>>> Is there any way to make both these queries work unfiltered? Maybe I
>>>could
>>> duplicate the authors node but in a different namespace for the
>>>fragment
>>> root to do the co-occurrences? Or is there a better way without using
>>> fragment roots?
>>> 
>>> Thanks
>>> Rob
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> General mailing list
>>> [email protected]
>>> http://developer.marklogic.com/mailman/listinfo/general
>>> 
>>
>>_______________________________________________
>>General mailing list
>>[email protected]
>>http://developer.marklogic.com/mailman/listinfo/general
>>
>
>
>_______________________________________________
>General mailing list
>[email protected]
>http://developer.marklogic.com/mailman/listinfo/general
>


_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to