使用thsr时突出显示结果文本:扩展ML的功能

时间:2014-05-05 10:34:34

标签: marklogic

我正在使用MarkLogic THSR功能来创建“公司”术语的同义词。我能够得到理想的结果。当我在“公司”一词的基础上搜索时,我只会突出显示“公司”字样。但是,我需要突出显示所有同义词。

我正在使用cts:突出显示结果时突出显示文字。

我的同义词库XML如下:

<thesaurus  xmlns="http://marklogic.com/xdmp/thesaurus">
  <entry>
    <term>Company</term>
    <synonym>
      <term>Services</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Industry</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Firm</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Business</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Corporation</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>House</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Establishment</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Agency</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Office</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Bureau</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Organization</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Institution</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Operation</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Enterprise</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Venture</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
    <synonym>
      <term>Undertaking</term>
      <part-of-speech>noun</part-of-speech>
    </synonym>
  </entry>
</thesaurus>

有没有其他方法来突出这些事情或我做错了什么?请帮帮我。

我使用同义词库的查询如下:

cts:search(//TEXT, thsr:expand(cts:word-query("TEXT"),  thsr:lookup("/myThsrDocs/syn.xml", "TEXT"),(),(),()))

1 个答案:

答案 0 :(得分:0)

通常,您使用https://docs.marklogic.com/thsr:expand来扩展您的查询,然后将结果作为XML传递给https://docs.marklogic.com/search:resolve,这会突出显示。

search:resolve(
  document {
    thsr:expand(
      cts:word-query("Company"), $THESAURUS-ENTRIES, (), (), ()) }/*)

thsr:expand函数使用您的初始cts:query项和您的同义词条目来编写扩展查询。 document { ... }/*表达式将cts:query项转换为XML元素,这是search:resolve期望的结果。