Hi Erik

Yeap we did try the position indexes for element and word positions but
that still doesn't solve it. I believe Marklogic doesn't have any
hierarchical indexes as in indexes for values located within the same
element.
On Jul 24, 2015 6:04 PM, "Erik Hennum" <[email protected]> wrote:

>  Hi, Basavaraj:
>
>  The best approach if at all possible is to put each size data row in a
> separate document instead of putting a size data table in a document.
> That's a general recommendation for MarkLogic: treat a document as a row
> and a collection as a table.  Then, the unfiltered indexes will yield the
> rows you want.
>
>  Did you try turning on range value positions for your range indexes?
>
>
>  Hoping that helps,
>
>
>    Erik Hennum
>
>    ------------------------------
> *From:* [email protected] [
> [email protected]] on behalf of Basavaraj Kalloli [
> [email protected]]
> *Sent:* Friday, July 24, 2015 3:04 AM
> *To:* MarkLogic Developer Discussion
> *Subject:* [MarkLogic Dev General] False positives with element-query
>
>   Hi,
>
>  We have a requirement where we need to search for min and max values
> which should occur within an element
>
>  For eg:
>
>  <SIZES>
>    <SIZEDATA>
>       <SIZE>12000</SIZE>
>       <SIZE_MIN>12000</SIZE_MIN>
>       <SIZE_MAX>12000</SIZE_MAX>
>    </SIZEDATA>
>    <SIZEDATA>
>       <SIZE>3500</SIZE>
>       <SIZE_MIN>3500</SIZE_MIN>
>       <SIZE_MAX>3500</SIZE_MAX>
>    </SIZEDATA></SIZES>
>
>
>  Given the above xml we need to search for min and max values in the
> range: 4000 and 5000. Now we have a element-query as:
>
>  import module namespace search = "http://marklogic.com/appservices/search"; 
> at "/MarkLogic/appservices/search/search.xqy";
> let $size-min-query := cts:element-range-query(xs:QName("SIZE_MIN"),
>                 "<=", xs:double(4000), (), 0)let $size-max-query := 
> cts:element-range-query(xs:QName("SIZE_MAX"),
>                 ">=", xs:double(5000), (), 0)let $and-query := 
> cts:and-query(($size-min-query, $size-max-query))                let $q := 
> cts:element-query(xs:QName("SIZEDATA"), $and-query)let $options :=
>     <options xmlns="http://marklogic.com/appservices/search";>
>         <search-option>unfiltered</search-option>
>         <return-results>true</return-results>
>     </options>
> return search:resolve(<q>{$q}</q>/node(), $options)
>
>
> If we run the above query this returns the document but ideally it shouldnt 
> because the element's i.e SIZEDATA doesnt satisfy the range. If I change the 
> options to use filtered search this works. We tried setting up element 
> positions and word positions to on but still we still have false positive.
>
> Any pointers or any other indexes which can help us?
>
>
> _______________________________________________
> 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

Reply via email to