I am running into some query time issues regarding range to range queryies.

I am using a cts:and-query with 2 cts:element-range-query inside the and-query.

 

Example:

 

let $lowVal := 200

let $hiVal := 500

 

let $results :=

<results>

   <item>

       <name>Item 1</name>

       <rangeValues>

         <intRangeLow>0</intRangeLow>

         <intRangeHi>1000</intRangeHi>
       </rangeValues>

       <rangeValues>

          <intRangeLow>300</intRangeLow>

          <intRangeHi>400</intRangeHi>
       </rangeValues>

       <rangeValues>

          <intRangeLow>500</intRangeLow>

          <intRangeHi>1500</intRangeHi>
       </rangeValues>

    </item>

   <item>

       <name>Item 2</name>

       <rangeValues>

         <intRangeLow>0</intRangeLow>

         <intRangeHi>20</intRangeHi>
       </rangeValues>

       <rangeValues>

          <intRangeLow>30</intRangeLow>

          <intRangeHi>40</intRangeHi>
       </rangeValues>

       <rangeValues>

          <intRangeLow>50</intRangeLow>

          <intRangeHi>60</intRangeHi>
       </rangeValues>

    </item>

   <item>

       <name>Item 3</name>

       <rangeValues>

         <intRangeLow>0</intRangeLow>

         <intRangeHi>100</intRangeHi>
       </rangeValues>

       <rangeValues>

          <intRangeLow>200</intRangeLow>

          <intRangeHi>400</intRangeHi>
       </rangeValues>

       <rangeValues>

          <intRangeLow>300</intRangeLow>

          <intRangeHi>600</intRangeHi>
       </rangeValues>

    </item>

</results>


let $query := 

   cts:element-query(xs:QName("rangeValues"),

      cts:and-query((

         cts:element-range-query(xs:QName("intRangeLo"),

           "<=", $hiVal)),

         cts:element-range-query(xs:QName("intRangeHi"),

           ">=", $loVal))

     ))

  }

 

let $res := for $docs in cts:search($results/item, cts:and-query($query))

return $docs

 

This should return Item 1, Item3 but not Item2. I have multiple raneg values in 
the DB, but this query seems to take a long time to run.

Any ideas how to optimize it ?

 

Thanks,

 

Tony Mariella

Raytheon Company

 


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

Reply via email to