【问题标题】:How to use the MarkLogic thesaurus API on phrases?如何在短语上使用 MarkLogic 词库 API?
【发布时间】:2013-08-05 08:55:47
【问题描述】:

在 Marklogic 中,我们可以扩展搜索以包括词库中的术语以及在搜索中输入的术语。

xquery version "1.0-ml";
import module namespace thsr="http://marklogic.com/xdmp/thesaurus" at "/MarkLogic/thesaurus.xqy";

cts:search(
doc("/Docs/hamlet.xml")//LINE,
thsr:expand(
    cts:word-query("weary"), 
    thsr:lookup("/myThsrDocs/thesaurus.xml", "weary"),
    (), 
    (), 
    () )
)

问题是如何支持以下情况:

  • 苹果和橙子
  • 苹果不是橙色
  • 苹果 - 橙色
  • 苹果+橙子
  • 表格:10-K
  • 合作:苹果
  • 苹果橙形式:[10-K]
  • “苹果和橙子”
  • “苹果”橙

【问题讨论】:

    标签: marklogic thesaurus


    【解决方案1】:

    我认为词库扩展不适用于这些情况。

    相反,请考虑使用搜索 API 并扩展语法以包含布尔运算符的变体:

    http://docs.marklogic.com/guide/search-dev/search-api#id_44520
    

    要将 form: 和 co: 映射到同一个索引,请再次考虑使用 Search API 并为同一个索引定义多个约束:

    http://docs.marklogic.com/guide/search-dev/search-api#id_95820
    

    【讨论】:

      【解决方案2】:

      使用 search:parse 解析查询字符串,生成 cts:query XML。然后使用递归 typeswitch 函数遍历 XML。对 cts:wordcts:word 术语使用词库扩展。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多