Xquery 短语搜索和使用搜索突出显示:在Marklogic中搜索

Xquery 短语搜索和使用搜索突出显示:在Marklogic中搜索,xquery,marklogic,Xquery,Marklogic,我想用search:search搜索一个短语并突出显示该短语(而不是单个单词)。例如,如果我正在搜索search:search(“租赁珊瑚”),则会出现以下输出:- <search:match path="fn:doc("abc.xml")/*:text>testing <search:highlight>Lease</search:highlight><search:highlight>CORAL</search:highlight>

我想用search:search搜索一个短语并突出显示该短语(而不是单个单词)。例如,如果我正在搜索search:search(“租赁珊瑚”),则会出现以下输出:-

<search:match path="fn:doc("abc.xml")/*:text>testing <search:highlight>Lease</search:highlight><search:highlight>CORAL</search:highlight></search:match>
答案在

“任何短语”双引号内的任何内容都被视为短语。该示例匹配具有短语“any phrase”(不带双引号)的文档

您可以使用
search:parse

import module namespace search = "http://marklogic.com/appservices/search"
  at "/MarkLogic/appservices/search/search.xqy";

search:parse('high time')
=>
<cts:and-query strength="20" qtextjoin="" qtextgroup="( )" xmlns:cts="http://marklogic.com/cts">
  <cts:word-query qtextref="cts:text">
    <cts:text>high</cts:text>
  </cts:word-query>
  <cts:word-query qtextref="cts:text">
    <cts:text>time</cts:text>
  </cts:word-query>
</cts:and-query>
导入模块名称空间搜索=”http://marklogic.com/appservices/search"
位于“/MarkLogic/appservices/search/search.xqy”;
搜索:解析('high time')
=>
高的
时间
这是一个由两个单词组成的AND查询词。现在试试这个:

import module namespace search = "http://marklogic.com/appservices/search"
  at "/MarkLogic/appservices/search/search.xqy";

search:parse('"high time"')
=>
<cts:word-query qtextpre="&quot;" qtextref="cts:text" qtextpost="&quot;" xmlns:cts="http://marklogic.com/cts">
  <cts:text>high time</cts:text>
</cts:word-query>
导入模块名称空间搜索=”http://marklogic.com/appservices/search"
位于“/MarkLogic/appservices/search/search.xqy”;
搜索:解析(““高时间”)
=>
时机成熟
这是一个简单的单词查询术语,但文本是一个短语,这正是您想要的。注意嵌套的引号