1

在 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]
  • “苹果和橙子”
  • “苹果”橙
4

2 回答 2

1

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

于 2013-08-05T20:46:05.903 回答
1

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

相反,请考虑使用 Search 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
于 2013-08-05T14:33:32.740 回答