xquery search:suggest where search term start with double quotes

138 Views Asked by At

I want to search marklogic for term that start with double quotes. i am using search-suggest.

term that i am searching is '"Independent'. When executed successfully, query should suggest multiple options with one option that is '"Independent party'. But its not returning any suggestion. I can see that search-suggest is not finding term that start with double quote. Please suggest how can i fix it.

code is shared below.

let $options:=<options xmlns="http://marklogic.com/appservices/search">
<additional-query>
 <cts:and-query xmlns:cts="http://marklogic.com/cts">
  <cts:collection-query>
   <cts:uri>myCollection</cts:uri>
  </cts:collection-query>
  <cts:or-query>
   <cts:collection-query>
     <cts:uri>anotherCollection</cts:uri>
    </cts:collection-query>
  </cts:or-query>
 </cts:and-query>
</additional-query>
<term>
 <term-option>case-insensitive</term-option>
 <term-option>punctuation-sensitive</term-option>
 <empty apply="all-results">
 </empty>
</term>
<constraint name="myTargetItem">
 <range collation="http://marklogic.com/collation/codepoint" type="xs:string" facet="false">
 <element ns="---" name="targetItem">
</element>
</range>
</constraint>
</options>


let $searchTerm := '"Independent'
let $searchTerm := concat('"*',$searchTerm )
let $searchTerm :=  concat("myTargetItem", ':', $searchTerm )
return search:suggest($searchTerm , $options,20)

Actual Result EMPTY

Expected myTargetItem:""Independent"

1

There are 1 best solutions below

6
On

Give this a try:

let $options:=
<options xmlns="http://marklogic.com/appservices/search">
<additional-query>
 <cts:and-query xmlns:cts="http://marklogic.com/cts">
  <cts:collection-query>
   <cts:uri>myCollection</cts:uri>
  </cts:collection-query>
  <cts:or-query>
   <cts:collection-query>
     <cts:uri>anotherCollection</cts:uri>
    </cts:collection-query>
  </cts:or-query>
 </cts:and-query>
</additional-query>
<default-suggestion-source>
  <range collation="http://marklogic.com/collation/codepoint" type="xs:string" 
    facet="false">
   <element ns="" name="targetItem"/>
  </range>
  <suggestion-option>case-insensitive</suggestion-option>
  <suggestion-option>punctuation-sensitive</suggestion-option>
</default-suggestion-source>
</options>


let $searchTerm := '"Independent'
let $searchTerm := concat('"*',$searchTerm )
let $searchTerm :=  concat("myTargetItem", ':', $searchTerm )
return search:suggest($searchTerm , $options,20)