我一直在尝试构造一个 bool 搜索查询,但我正在搜索的字段的值以连字符 -
开头,通常用作 bool not
运算符。一个例子可能会有所帮助:
假设我有一堆电影记录,我想搜索“戏剧”类型中标题为“-gladiator”的所有电影。通常我的查询如下所示:
search?bq=(and title:'-gladiator' genre:'drama')
问题是 -
被解释为 not
运算符,因此这将返回给我所有没有标题角斗士的戏剧类型电影。我尝试使用黑斜杠和 url 编码的反斜杠 (%5C) 转义连字符,但执行此操作时,我从 CloudSearch 中收到错误。到目前为止,我找不到任何讨论此问题的文档。
有人知道如何在 bool 搜索查询中转义 bool 运算符吗?
相关文档 http://docs.aws.amazon.com/cloudsearch/latest/developerguide/booleanoperators.html http://docs.aws.amazon.com/cloudsearch/latest/developerguide/booleansearch.html
最佳答案
事实证明,您必须使用两个反斜杠转义运算符。像这样的事情会起作用:
search?bq=(and title:'\\-gladiator' genre:'drama')
如果您尝试使用curl 或类似的东西来测试它,也不要忘记对您的查询字符串进行url 编码。
关于amazon-web-services - 在 CloudSearch 查询中转义 bool 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20254774/