搜索:搜索字符串包含单引号和双引号,因此形成错误的cts搜索查询

时间:2017-05-10 06:46:48

标签: marklogic marklogic-8

面对search:search中的问题,形成错误的cts query

解释

在搜索选项中,语法引用设置为'

<quotation>'</quotation>

搜索字符串(search:search的第一个参数)包含单引号(')和双引号("

例如:

title:'Linguistique et" sciences de 1'homme'

标题约束将形成element-value-query

现在,解析器将形成element-value-query Linguistique et" sciences de 1,其余时间为word-query,因为引用设置为'

即使将报价更改为"

<quotation>"</quotation>

,搜索字符串为

title:"Linguistique et" sciences de 1'homme"

再次element-value-query将仅为 Linguistique et

形成

我也尝试将搜索字符串更改为

title:'Linguistique et&quot; sciences de 1&apos;homme'

但与上述相同的问题。

我知道这是预期的行为。

有相同的解决方案吗?

2 个答案:

答案 0 :(得分:3)

  

引号字符之间的文本被视为短语。您   不能指定包含引号字符的搜索;对于   例如,指定包含双引号的搜索   字符(默认引号字符),修改你的语法   使用不同的引号字符。

因此,如果您使用不同的符号进行报价,您似乎可以实现的目标。

答案 1 :(得分:0)

考虑完全绕过解析,至少对于那个标题。如果你有另一种方法来挑出标题短语(可能是一个单独的输入字段),你可以将它传递给search:search,例如additional-query,或者使用search:resolve和{{}你构建了自己。

HTH!