我想使用带有括号的字段名,例如:distance(a)。
索引工作正常,但是当我查询时:
GET /search
{
"query":
{
"query_string":"distance(a):*"
}
}
我出错了。
在没有括号的情况下工作正常。
有人知道如何在方括号中使用字段名称吗?
谢谢
最佳答案
好的,因此(
是Elasticsearch中的保留字符,要在查询中使用它,您必须对其进行转义。保留字符列表可以在here中找到。因此,通常您可以使用\
对它进行转义,但是为了使转义字符通过REST API,您必须使用\\
对它进行两次转义。
我刚刚在沙盒中测试了以下查询:
{
"query": {
"query_string": {
"query": "distance\\(a\\):*"
}
}
}
关于elasticsearch - 字段名称约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059684/