Hi Mano, The exception is caused by the large number of User elements. You try to display them all. Applying pagination will likely help.
If you really are interested in User elements, based on a partial match of the Surname, you could always add an attribute only containing the first character of the surname, index that, and use cts:search(//User, cts:element-attribute-query(…)) to get what you need. Are you actually trying to support wild-carded searches (difficult with such helper attributes), or could it be that you are trying to apply some kind of grouping to the surnames? (should work well this way) Kind regards, Geert Van: [email protected] [mailto:[email protected]] Namens Kelly Stirman Verzonden: woensdag 16 februari 2011 15:15 Aan: General MarkLogic Developer Discussion Onderwerp: Re: [MarkLogic Dev General] Alternate for wildcard search Hi Mano, What does your User element look like? If you want to browse values from documents without pulling the documents into cache, your only option is to use a range index. It sounds like you want to display to an end user all the values of User rather than Surname. Is that correct? I can think of a few options here: 1) Add an attribute to User that includes “Surname, Firstname” or some other variation you wish to display, and build a range index on that. 2) It is possible to build a range index on User, even though it is a complex node. The values in the range index will be equivalent to fn:data(User), so you might not have a delimiter in that case that would give you what you need to display to an end user. You can try it in CQ for a document to see. 3) If you have range indexes on Surname and FirstName, you can use co-occurrences to get the two values together without going to the documents. Kelly From: [email protected] [mailto:[email protected]] On Behalf Of mano m Sent: Wednesday, February 16, 2011 8:57 AM To: General MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] Alternate for wildcard search Hi, I am getting 2 lakhs result <v:results v:warning="non-element item" xmlns:v="com.marklogic.developer.cq.view">238911</v:results> Is there anyother way to query the "Surname" element whose value starts with specific character and return the <Surname> element as output Regards, Mano ________________________________ From: "Illes, Szabolcs" <[email protected]> To: General MarkLogic Developer Discussion <[email protected]> Sent: Wed, 16 February, 2011 7:18:06 PM Subject: Re: [MarkLogic Dev General] Alternate for wildcard search Hi Mano, cts:element-value-match doesn’t return a cts:query it will only give you string values from the lexicon, so if you put inside cts:search it willl do a fulltext search for all the values coming out from the lexicon. Regarding "XDMP-EXPNTREECACHEFULL" How many user do you have in the db? Could you do an xdmp:estimate on the range query version and post it here? Szabolcs On 16/02/2011 12:49, "mano m" <[email protected]<mailto:[email protected]>> wrote: Hi Danny, cts:element-value-match() will return the Value of the element "Surname". My requirement need the element "Surname" itself. Please let me know how to compose the cts:element-value-match() to get the element. I tried in the following way cts:search(fn:collection("UserDetails")//User, cts:and-query(( cts:element-value-match(xs:QName("Surname"), "J*") )) ) Please suggest the alternate way.I also tried with range query. I am getting the "XDMP-EXPNTREECACHEFULL" error. cts:search(fn:collection("UserDetails")//User, cts:and-query(( cts:element-range-query(xs:QName("Surname"),">=","A"), cts:element-range-query(xs:QName("Surname"),"<","B") )) Regards, Mano ________________________________ From: Danny Sokolsky <[email protected]> To: General MarkLogic Developer Discussion <[email protected]> Sent: Fri, 11 February, 2011 3:29:35 AM Subject: Re: [MarkLogic Dev General] Alternate for wildcard search Hi Mano, In your original email, you say you need to display a list of names that match a pattern. Similar to Szabolcs’ suggestion of using a range query, you can use the lexicon functions which just return the values from the range index. And range indexes are fast. cts:element-value-match is probably what you want. Something like: cts:element-value-match(“xs:QName(“Surname”), “J*”) You can also pass this a cts:query if you want to constrain the lexicon look-up to fragments that match a query. You should only need to use cts:search if you want your results in relevance order. Hope that helps, -Danny From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Illes, Szabolcs Sent: Thursday, February 10, 2011 7:47 AM To: General MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] Alternate for wildcard search Hi, What about using element-range-query, like: cts:search( fn:collection("UserDetails")//User, cts:and-query(( cts:element-range-query(xs:QName(" Surname"),">=","S"), cts:element-range-query(xs:QName(" Surname"),"<","T") )) ) You need to setup a string range index on Surname Szabolcs On 10/02/2011 11:25, "Geert Josten" <[email protected]<mailto:[email protected]>> wrote: Hi Mano, You could do fn:collection("UserDetails")//User//Surname[fn:starts-with(‘J’, .)], but I don’t really expect that to be faster than using the wildcard option of the query. Could even be that above expression is optimized to your query. Kind regards, Geert Van: [email protected]<mailto:[email protected]> [mailto:[email protected]] Namens mano m Verzonden: donderdag 10 februari 2011 11:44 Aan: [email protected]<mailto:[email protected]> Onderwerp: [MarkLogic Dev General] Alternate for wildcard search Hi, In my application I have to display the list user name starts with the character choosen by the User. In the ML database all the Wildcard options are disabled. I have enabled the Wildcard in cts:element-word-query() directly , which slow down the query execution. Is there anyother way to get the user names starts with specific character? Sample query: cts:search (fn:collection("UserDetails")//User, cts:element-word-query(xs:QName ("Surname"),"J*", "wildcarded")) Regards, Mano ________________________________ _______________________________________________ General mailing list [email protected]<mailto:[email protected]> http://developer.marklogic.com/mailman/listinfo/general ******************************************************************************** DISCLAIMER: This e-mail is confidential and should not be used by anyone who is not the original intended recipient. If you have received this e-mail in error please inform the sender and delete it from your mailbox or any other storage mechanism. Neither Macmillan Publishers Limited nor any of its agents accept liability for any statements made which are clearly the sender's own and not expressly made on behalf of Macmillan Publishers Limited or one of its agents. Please note that neither Macmillan Publishers Limited nor any of its agents accept any responsibility for viruses that may be contained in this e-mail or its attachments and it is your responsibility to scan the e-mail and attachments (if any). No contracts may be concluded on behalf of Macmillan Publishers Limited or its agents by means of e-mail communication. Macmillan Publishers Limited Registered in England and Wales with registered number 785998 Registered Office Brunel Road, Houndmills, Basingstoke RG21 6XS ******************************************************************************** ________________________________ _______________________________________________ General mailing list [email protected]<mailto:[email protected]> http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
