【发布时间】:2016-04-07 05:34:54
【问题描述】:
我可能没有正确理解这一点,但是当使用查询字符串查询来搜索我的索引时,它指出需要转义保留字符或特殊字符。
保留字符为:+ - = && || >
未能正确转义这些特殊字符可能会导致语法错误,从而阻止您的查询运行。"
目前我的索引没有标记特殊字符,因为我只使用标准分析器,但我确实对所有字符串字段都进行了分析和未分析。
如果我将这些字符串编入索引:
quick fox
brown fox
当我运行查询时:
{
"query_string" : {
"query" : "(quick OR brown) AND fox",
}
}
返回正确的结果。但是根据保留字符文档,是否需要在查询字符串查询中转义带有括号“(”和“)”的查询?我对何时转义保留字符以及何时不在查询中感到有些困惑?
需要吗?:
{
"query_string" : {
"query" : "\(quick OR brown\) AND fox",
}
}
我知道括号是用于分组的,所以不要逃避它们是有意义的。但是在 Elasticsearch 的查询中总是需要转义哪些保留字符?仅当保留字符为运算符时?
【问题讨论】:
标签: elasticsearch escaping query-string