这有效:
GET /box/item/_count?q=name%3Aabcdef
这不是:
GET /box/item/_count?q=name%3A-abcdef
(差异是破折号)
来自elasticsearch的回复是:“无法解析'名称:-abcdeft'”
框/项目未被分析。
怎么办?
答案 0 :(得分:3)
使用反斜杠转义它对我有用:
GET /box/item/_count?q=name%3A\-abcdef
使用引号也是如此:
GET /box/item/_count?q=name%3A"-abcdef"
连字符是一个特殊字符,像其他人一样需要转义:
保留字符
如果您需要使用任何充当运算符的字符 在您的查询本身(而不是作为运算符),那么你应该逃避 他们有一个领先的反斜杠。例如,要搜索(1 + 1)= 2, 您需要将查询编写为\(1 \ +1 \)= 2。
保留字符为:+ - && || ! (){} [] ^“〜*?:\ /
未能正确转义这些特殊字符可能导致a 语法错误,阻止您的查询运行。