Marklogic 使用thsr时突出显示结果文本:展开ML函数

Marklogic 使用thsr时突出显示结果文本:展开ML函数,marklogic,Marklogic,我使用MarkLogic THSR函数创建公司术语的同义词。我能得到想要的结果。当我在公司术语的基础上搜索时,我只会突出显示公司文本。但是,我需要突出显示所有同义词 我在显示结果时使用cts:highlight突出显示文本 我的同义词表XML如下所示: <thesaurus xmlns="http://marklogic.com/xdmp/thesaurus"> <entry> <term>Company</term> <

我使用MarkLogic THSR函数创建公司术语的同义词。我能得到想要的结果。当我在公司术语的基础上搜索时,我只会突出显示公司文本。但是,我需要突出显示所有同义词

我在显示结果时使用cts:highlight突出显示文本

我的同义词表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"),(),(),()))
通常,您会使用扩展查询,然后将结果作为XML传递给进行突出显示的对象

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

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

您如何使用这个同义词库数据?发布一些代码。我已经更新了我的问题,请看我刚刚发布了我的cts:search查询cts:search功能是低级的。它返回一个结果集,仅此而已。要突出显示您想要的搜索:解决:请参阅下面的我的答案。谢谢您的回复。我试着运行它,但如果与cts:search比较,我可以在其中定义元素文本,它会花费太多的时间始终超时。该文档的更多详细信息是,我的数据库中只有一个351MB的文档。我已经通过MLCP插入了它。我在数据库中设置了片段父对象,我有将近111941个片段。我只需要搜索文本元素。请重新考虑一下。文档是行,不是表。明白了。谢谢你的回复。