xquery search: предложить, где поисковый запрос начинается с двойных кавычек - PullRequest
1 голос
/ 11 июля 2019

Я хочу найти в marklogic термин, начинающийся с двойных кавычек.Я использую поисковый запрос.

термин, который я ищу, - «Независимый». При успешном выполнении запроса должно предлагаться несколько вариантов с одним параметром «Независимая сторона».Но это не возвращает никаких предложений.Я вижу, что поиск-предложение не находит термин, который начинается с двойной кавычки.Пожалуйста, предложите, как я могу это исправить.

Код предоставлен ниже.

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)

Фактический результат EMPTY

Ожидаемый myTargetItem: "" Независимый "

1 Ответ

1 голос
/ 11 июля 2019

Попробуйте:

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)
...