elasticsearch - 字段名称约定

标签 elasticsearch

我想使用带有括号的字段名,例如: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/

相关文章:

elasticsearch - 如何根据Logstash中的一个索引从一个参数中筛选出记录

具有特定时间范围的 Elasticsearch 日期直方图聚合

elasticsearch - 排除 elasticsearch 结果数据中的 _id 和 _index 字段

elasticsearch - 渗滤未按预期返回结果

json - Logstash:从数组到字符串的 XML 到 JSON 输出

json - Jbuilder:如何对哈希数组进行编码?

elasticsearch - Spring Boot 弹力未达到预期效果

elasticsearch - ElasticSearch获取NULL值作为空字符串或 “N/A”

elasticsearch - 将ElasticSearch和Azure搜索作为常规数据存储与搜索结合使用是否合适?

spring-boot - 单元测试时如何模拟ElasticsearchOperations(spring-data-elasticsearch v.4.0.3)