假设我正在使用其中一个cts:query
API 进行搜索。我正在寻找包含短语“ John and Jane ”的文档。我的一些文档中有“ John& Jane ”(实际上是John& amp; Jane)。我也希望他们回来。还要考虑反向情况。
Marklogic 会提供任何选项吗?
答案 0 :(得分:1)
表示为cts的查询:查询项或XML很容易用XQuery typeswitch
表达式重写。 http://markmail.org/message/6hxmuqnpnfm73j4n处的讨论列表主题有一个类似的例子。
答案 1 :(得分:1)
我可能错了,但据我所知,MarkLogic没有提供自动处理类似功能的功能。像search:search
和search:parse
这样的功能很强大,但不要那么远。您可以使用自己的搜索字符串,将其分解为部分手动将其包装在cts:query中,或者使用类似search:parse
之类的内容,然后像迈克那样的技巧来行走通过您的查询树,展开您希望以特定方式扩展的任何特定搜索查询节点。
Mike指出的markmail线程给出了如何遍历查询树并对其进行操作的示例。这个特殊情况有点重,但有一个词库模块可以帮助各种一般情况。 “搜索开发指南”的以下章节解释了它的功能,并以一个如何应用它的小例子结束:
http://docs.marklogic.com/guide/search-dev/thesaurus#chapter
HTH!
答案 2 :(得分:1)
假设您的搜索字词为"John & Jane"
为了搜索上面的单词,您可以使用以下行
let $inputSearchDetails ="John & Jane"
let $InputXML := xdmp:unquote($inputSearchDetails, "", ("format-xml", "repair-full"))