Hi Geert,

Yes, now it works. I removed the namespace from the attribute and works! 
Thank you very much!

Thanks,
Ling

Geert Josten wrote:
> Hi Ling,
> 
> There is something peculiar with attributes and namespaces. You must to 
> prefix attributes to make them take part of a namespace. No prefix on 
> attributes means by definition no namespace. This only applies to attributes.
> 
> So, what happens if you start using a prefix in your code? ;-)
> 
> Kind regards,
> Geert
> 
> 
> 
> drs. G.P.H. (Geert) Josten
> Consultant
> 
> 
> Daidalos BV
> Hoekeindsehof 1-4
> 2665 JZ Bleiswijk
> 
> T +31 (0)10 850 1200
> F +31 (0)10 850 1199
> 
> mailto:[email protected]
> http://www.daidalos.nl/
> 
> KvK 27164984
> 
> P Please consider the environment before printing this mail.
> De informatie - verzonden in of met dit e-mailbericht - is afkomstig van 
> Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit 
> bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit 
> bericht kunnen geen rechten worden ontleend.
> 
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of
>> Ling Ling
>> Sent: donderdag 6 mei 2010 17:58
>> To: General Mark Logic Developer Discussion
>> Subject: Re: [MarkLogic Dev General] attribute range index
>>
>> Hi Danny,
>>
>> Yes, I have default namespace declared. I tried the query in cq,
>>
>> xquery version "1.0-ml";
>> (: buffer 2 :)
>> declare namespace html = "http://www.w3.org/1999/xhtml";;
>> declare default element namespace "http://tpox-benchmark.com/custacc";;
>>
>> xdmp:query-trace(true()),(
>> for $cust in doc()
>> where $cust/Customer/@id = 1002
>> return $cust
>> )
>>
>> I don't know why. Thank you very much!
>>
>> Ling
>>
>>
>> Danny Sokolsky wrote:
>>> What namespace is your element and attribute in, and what
>> namespace is your range index in?  It looks (according to the
>> query trace) like both the element and the attribute are in
>> the http://tpox-benchmark.com/custacc namespace, but the
>> first query is requesting the id attribute in no namespace.
>> Maybe somewhere here lies the clue?  Do you have any default
>> namespaces in play here?
>>> -Danny
>>>
>>> -----Original Message-----
>>> From: [email protected]
>>> [mailto:[email protected]] On Behalf Of Ling
>>> Ling
>>> Sent: Wednesday, May 05, 2010 3:53 PM
>>> To: [email protected]
>>> Subject: [MarkLogic Dev General] attribute range index
>>>
>>> Hello,
>>>
>>> I have a question about query and attribute range query I have a
>>> customer xml file stored in database and an attribute range
>> index on
>>> Customer id, if my query is like:
>>>
>>> for $cust in doc()
>>> where $cust/Customer/@id = 1002
>>> return $cust
>>>
>>> The range index is not used and the trace file is here:
>>>
>>> Info: benchHttp: line 7: xdmp:eval("xquery version
>>> &quot;1.0-ml&quot;;&#13;&#10;(: buffer 2 :)&#13;&...", (), <options
>>>
>> xmlns="xdmp:eval"><root>benchHttp</root><isolation>different-transacti
>>> on</isolatio...</options>)
>>> Info: benchHttp: line 7: Analyzing path for $cust: fn:doc()
>>> Info: benchHttp: line 7: Step 1 is searchable: fn:doc()
>>> Info: benchHttp: line 7: Path is fully searchable.
>>> Info: benchHttp: line 7: Gathering constraints.
>>> Info: benchHttp: line 7: Step 1 contributed 1 constraint: fn:doc()
>>> Info: benchHttp: line 8: Comparison contributed hash value
>> constraint:
>>> Customer/@id = 1002
>>> Info: benchHttp: line 7: Where clause contributed 2 constraints for
>>> $cust: $cust/Customer/@id = 1002
>>> Info: benchHttp: line 7: Executing search.
>>> Info: benchHttp: line 7: Selected 1 fragment to filter
>>>
>>> If I wrote query like this:
>>>
>>> cts:search(doc()/Customer,
>>> cts:element-attribute-range-query(xs:QName("Customer"),
>>> xs:QName("id"), "=" ,1002))
>>>
>>> xdmp:query-trace(true()),(
>>> cts:search(doc()/Customer,
>>> cts:element-attribute-range-query(xs:QName("Customer"),
>>> xs:QName("id"), "=" ,1002))
>>> )
>>>
>>> The index is used but no results returned. Here is the trace file:
>>>
>>> line 7: xdmp:eval("xquery version &quot;1.0-ml&quot;;&#13;&#10;(:
>>> buffer
>>> 2 :)&#13;&...", (), <options
>>>
>> xmlns="xdmp:eval"><root>benchHttp</root><isolation>different-transacti
>>> on</isolatio...</options>) line 7: Analyzing path for search:
>>> fn:doc()/Customer line 7: Step 1 is searchable: fn:doc()
>> line 7: Step
>>> 2 is searchable: Customer line 7: Path is fully searchable.
>>> line 7: Gathering constraints.
>>> line 7: Step 2 test contributed 1 constraint: Customer line 7:
>>> Comparison contributed int range value constraint:
>> Customer/@id = 1002
>>> line 7: Search query contributed 1 constraint:
>>>
>> cts:element-attribute-range-query(fn:QName("http://tpox-benchmark.com/
>>> custacc", "Customer"),
>> fn:QName("http://tpox-benchmark.com/custacc";,
>>> "id"), "=", 1002, (), 1) line 7: Executing search.
>>> line 7: Selected 0 fragments to filter
>>>
>>> Could you show me the reason? Thank you very much!
>>>
>>> Regards,
>>> Ling
>>> _______________________________________________
>>> 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
> 
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to