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 > > "1.0-ml"; (: buffer 2 :) &...", (), <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 "1.0-ml"; (: > > buffer > > 2 :) &...", (), <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
