在CloudSearch查询中转义布尔运算符

时间:2013-11-27 23:00:54

标签: amazon-web-services amazon-cloudsearch

我一直在尝试构建一个布尔搜索查询,但我正在搜索的字段的值以一个超级-开头,它通常用作布尔not运算符。一个例子可能会有所帮助:

假设我有一堆电影记录,我想在“戏剧”类型中搜索标题为“-gladiator”的所有电影。通常我的查询看起来像这样:

search?bq=(and title:'-gladiator' genre:'drama')

问题是-被解释为not运算符所以这将返回给我所有没有标题角斗士的戏剧类型的电影。我已经尝试使用黑名单和url编码的反斜杠(%5C)来转义连字符,但是当我这样做时,我从CloudSearch获得错误。到目前为止,我找不到任何有关此问题的文档。

有没有人知道如何在布尔搜索查询中转义布尔运算符?

相关文件 http://docs.aws.amazon.com/cloudsearch/latest/developerguide/booleanoperators.html http://docs.aws.amazon.com/cloudsearch/latest/developerguide/booleansearch.html

1 个答案:

答案 0 :(得分:3)

事实证明,你必须用两个反斜杠来逃避操作员。像这样的东西会起作用:

search?bq=(and title:'\\-gladiator' genre:'drama')

如果你试图用curl或类似的东西测试它,也不要忘记对你的查询字符串进行url编码。