字段名称约定

时间:2017-03-28 02:32:56

标签: elasticsearch

我想使用带括号的字段名称,例如:distance(a)。 索引工作正常,但当我查询:

GET /search
{
   "query":
       {
         "query_string":"distance(a):*"
       }
}

我收到了错误。 在没有支架的领域,它的工作正常。 有人知道如何使用带括号的字段名称? 感谢

1 个答案:

答案 0 :(得分:1)

好的,所以(是Elasticsearch中的保留字符,要在查询中使用它,您必须将其转义。可以找到保留字符列表here。所以通常你可以用\来逃避它,但为了让转义字符通过REST API,你必须用\\双重转义它。

我刚在沙盒中测试了以下查询:

{
  "query": {
    "query_string": {
      "query": "distance\\(a\\):*"
    }
  }
}