使用&符号进行Marklogic搜索

时间:2014-01-02 14:09:49

标签: search marklogic ampersand

假设我正在使用其中一个cts:query API 进行搜索。我正在寻找包含短语“ John and Jane ”的文档。我的一些文档中有“ John& Jane ”(实际上是John& amp; Jane)。我也希望他们回来。还要考虑反向情况。

Marklogic 会提供任何选项吗?

3 个答案:

答案 0 :(得分:1)

表示为cts的查询:查询项或XML很容易用XQuery typeswitch表达式重写。 http://markmail.org/message/6hxmuqnpnfm73j4n处的讨论列表主题有一个类似的例子。

答案 1 :(得分:1)

迈克提出了一个很好的建议,但是可能值得退后一步,先看看你的问题。从你对Mike的回答的评论我认为你寻找类似于词库扩展的东西,但对于'和'和'&'而不是其他的话。

我可能错了,但据我所知,MarkLogic没有提供自动处理类似功能的功能。像search:searchsearch: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"))