在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"),
(),
(),
() )
)
问题是如何支持以下案例:
答案 0 :(得分: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
答案 1 :(得分:1)
使用search:parse
解析查询字符串,产生cts:query XML。然后使用递归typeswitch
函数来遍历XML。在cts:word
和cts:word
条款上使用词库扩展。