I was wrong we do have 3.2. I have range indexes on all my elements.
If I have multiple documents in ML, all with similar xml structure and I want to get a resulting document based on this query would the query be the same ? The problem seems to be with nested range queries. -Tony > Subject: RE: [MarkLogic Dev General] FW: Marklogic 3.1 > Date: Mon, 8 Sep 2008 14:57:49 -0700 > From: [EMAIL PROTECTED] > To: [email protected] > > It looks to me like you have the right idea there, but there are a few > details that are not quite right. > > (Also, you might think about upgrading to 3.2) > > What I tried is the following: > > * created Int range indexes on the elements intValueLo and intValueHi > elements > * inserted the following into that database (your XML had malformed end tags > for intValueHi): > > let $x := <results> > <tagA> > <intValueLo>0</intValueLo> > <intValueHi>100</intValueHi> > </tagA> > <tagA> > <intValueLo>20</intValueLo> > <intValueHi>200</intValueHi> > </tagA> > <tagA> > <intValueLo>30</intValueLo> > <intValueHi>300</intValueHi> > </tagA> > <tagA> > <intValueLo>40</intValueLo> > <intValueHi>400</intValueHi> > </tagA> > <tagA> > <intValueLo>50</intValueLo> > <intValueHi>500</intValueHi> > </tagA> > </results> > return xdmp:document-insert("/ray/test.xml", $x) > > > * run the following query (I reversed the Hi and Lo parts of your cts:query, > as the way it was written it produced no results--probably you want a > different value for hi and lo though): > > let $inputInt := 250 > let $query := cts:and-query(( > cts:element-range-query(xs:QName("intValueHi"), ">=", $inputInt), > cts:element-range-query(xs:QName("intValueLo"), "<=", $inputInt) > )) > return > cts:search(//tagA, $query) > > This returns: > > <tagA><intValueLo>30</intValueLo><intValueHi>300</intValueHi></tagA> > <tagA><intValueLo>40</intValueLo><intValueHi>400</intValueHi></tagA> > <tagA><intValueLo>50</intValueLo><intValueHi>500</intValueHi></tagA> > > -Danny > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tony Mariella > Sent: Monday, September 08, 2008 1:29 PM > To: [email protected] > Subject: [MarkLogic Dev General] FW: Marklogic 3.1 > > > I am a software developer currently using Marklogic 3.1. > > I have a technical question: > I am trying to do a nested range query: > > If I have this xml contained in the ML database, is it possible to do a range > search on this data: > > <results> > <tagA> > <intValueLo>0</intValueLo> > <intValueHi>100</intValue> > </tagA> > <tagA> > <intValueLo>20</intValueLo> > <intValueHi>200</intValue> > </tagA> > <tagA> > <intValueLo>30</intValueLo> > <intValueHi>300</intValue> > </tagA> > <tagA> > <intValueLo>40</intValueLo> > <intValueHi>400</intValue> > </tagA> > <tagA> > <intValueLo>50</intValueLo> > <intValueHi>500</intValue> > </tagA> > </results> > > What I want to do is a range query given an input value: $inputInt := 250 > > If I do this: > cts:and-query(( > cts:element-range-query(xs:QName("intValueLo"), ">=", $inputInt), > cts:element-range-query(xs:QName("intValueHi"), "<=", $inputInt) > )) > > This seems to take all the intValueLo values and all the intValueHi values > and does a range query between them. > > Is there a solution to this problem ? Email response is preferred. > > Thank you, > > Tony Mariella > Raytheon Company > (240) 373-5559 > _______________________________________________ > General mailing list > [email protected] > http://xqzone.com/mailman/listinfo/general
_______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
