我一直在尝试构建一个布尔搜索查询,但我正在搜索的字段的值以一个超级-
开头,它通常用作布尔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
答案 0 :(得分:3)
事实证明,你必须用两个反斜杠来逃避操作员。像这样的东西会起作用:
search?bq=(and title:'\\-gladiator' genre:'drama')
如果你试图用curl或类似的东西测试它,也不要忘记对你的查询字符串进行url编码。