You can configure search:suggest() to use a word lexicon as the source, which 
will give you words instead of phrases.

However, you should understand that word lexicons won't scale up as well as 
range indexes; depending on you data this may or may not be a problem for you.  
A field word lexicon might be a good middle ground.  You could give this a try 
and test it to see whether you get the performance you wnat.

________________________________________
From: [email protected] 
[[email protected]] On Behalf Of Jakob Fix 
[[email protected]]
Sent: Thursday, April 05, 2012 9:09 AM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] search:suggest and xdmp:to-json and jquery 
autocomplete not a perfect match?

yes, i think you're right. my question should actually have been: what
options to use to retrieve just one word (not a phrase)...

thanks Colleen,
Jakob.



On Thu, Apr 5, 2012 at 17:59, Colleen Whitney
<[email protected]> wrote:
> Right, the output of search:suggest() is suggested *query strings*, so the 
> quotes are significant.  A search for the phrase "Abbrevations and acronyms" 
> is not the same as a search for the three words Abbrevations and acronyms.  
> So you can't just strip them.
>
> --Colleen
>
> ________________________________________
> From: [email protected] 
> [[email protected]] On Behalf Of Jakob Fix 
> [[email protected]]
> Sent: Thursday, April 05, 2012 6:57 AM
> To: MarkLogic Developer Discussion
> Subject: Re: [MarkLogic Dev General] search:suggest and xdmp:to-json and 
> jquery autocomplete not a perfect match?
>
> the thing is that sometimes the results are quoted, and sometimes they
> aren't.  experimentation shows that quotes are omitted when the result
> is just a word (i.e. no spaces in between). see the lines marked ***
> below:
>
> "Abbreviated Bibliography"
> ***Abbreviations
> "Abbreviations and acronyms"
> "Abbreviations and Acronyms"
> "Abkürzungen und Akronyme"
> ***Abkürzungsverzeichnis
> "Abonnés aux téléphones portables"
> "About the authors"
>
> while I do know a way around it (as described earlier), it doesn't
> seem satisfactory, and I was (am!) hoping that there is a simple
> solution that I haven't seen.
>
> Jakob.
>
>
>
> On Thu, Apr 5, 2012 at 15:37, David Lee <[email protected]> wrote:
>> I haven't used search:suggest but if the results are already quoted (seems 
>> strange to me - how is the inner " escaped ?) maybe you could just
>> create the JSON array yourself with
>>
>>   concat("[" , string-join($results,","),"]" )
>>
>>
>> -----------------------------------------------------------------------------
>> David Lee
>> Lead Engineer
>> MarkLogic Corporation
>> [email protected]
>> Phone: +1 650-287-2531
>> Cell:  +1 812-630-7622
>> www.marklogic.com
>>
>> This e-mail and any accompanying attachments are confidential. The 
>> information is intended solely for the use of the individual to whom it is 
>> addressed. Any review, disclosure, copying, distribution, or use of this 
>> e-mail communication by others is strictly prohibited. If you are not the 
>> intended recipient, please notify us immediately by returning this message 
>> to the sender and delete all copies. Thank you for your cooperation.
>>
>>> -----Original Message-----
>>> From: [email protected] [mailto:general-
>>> [email protected]] On Behalf Of Jakob Fix
>>> Sent: Thursday, April 05, 2012 7:48 AM
>>> To: General Mark Logic Developer Discussion
>>> Subject: [MarkLogic Dev General] search:suggest and xdmp:to-json and jquery
>>> autocomplete not a perfect match?
>>>
>>> Hi,
>>>
>>> a typical integration of search:suggest is to use it as the data
>>> provider for, for example, the jquery autocomplete.
>>>
>>> using search:suggest I might get a sequence of strings:
>>>
>>> "A "Credit Crunch"?"
>>> "A Avaliação dos Alunos"
>>> "A Balancing Act"
>>> "A Better World for All"
>>> "A Bigger Picture"
>>>
>>> wrapping the search:suggest in xdmp:to-json gives me this:
>>>
>>> ["\"A \"Credit Crunch\"?\"", "\"A Avalia\u00E7\u00E3o dos Alunos\"",
>>> "\"A Balancing Act\"", "\"A Better World for All\"", "\"A Bigger
>>> Picture\""]
>>>
>>> I would very much like to see an option in xdmp:to-json that would not
>>> wrap another set of quotes around each item; in a perfect world this
>>> is the result I'd like to see:
>>>
>>> ["A \"Credit Crunch\"?", "A Avalia\u00E7\u00E3o dos Alunos", "A
>>> Balancing Act", "A Better World for All", "A Bigger Picture"]
>>>
>>> So, is there an easier option than trimming via a nested
>>> replace(replace()) the left and right quote marks (if they exist,
>>> single results aren't apparently quoted) of each element in the
>>> sequence, and then concat-ing and string-join-ing like this (not even
>>> sure that would work):
>>>
>>> concat(
>>>       '[&quot;',
>>>       string-join(
>>>         search:suggest($term, $options, 5), '&quot;,&quot;'
>>>       ),
>>>       '&quot;]'):)
>>>
>>> Right now the integration of jquery autocomplete and search:suggest
>>> seems quite cumbersome (but I may overlook the obvious solution, for
>>> sure!).
>>>
>>> Thanks for your advice,
>>> Jakob.
>>> _______________________________________________
>>> 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
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to