首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转义Elasticsearch查询时出现问题

转义Elasticsearch查询时出现问题
EN

Stack Overflow用户
提问于 2017-08-30 05:24:16
回答 1查看 1.8K关注 0票数 0

在ES 5中,假设我想搜索"yabba/dabba“。docs提到使用反斜杠对保留字符进行转义。但是如果我这样做,我会得到一个错误。执行此查询将返回错误:

代码语言:javascript
运行
复制
curl -XPOST "http://127.0.0.1:9200/messages/_search?pretty=true" --data-binary '{
  "query": {
    "bool": {
      "must": [
        {
       "bool" : {
        "should" : [
         {
          "query_string" : {
           "query" : "yabba\/dabba"
          }
         }
        ]
       }
      }
      ]
    }
  }
}'

返回的错误相关部分为:

代码语言:javascript
运行
复制
        "reason" : {
          "type" : "query_shard_exception",
          "reason" : "Failed to parse query [yabba/dabba]",
          "index_uuid" : "hhldqVnWSDelNyMdtiF0kw",
          "index" : "messages_201708291329",
          "caused_by" : {
            "type" : "parse_exception",
            "reason" : "Cannot parse 'yabba/dabba': Lexical error at line 1, column 12.  Encountered: <EOF> after : \"/dabba\"",
            "caused_by" : {
              "type" : "token_mgr_error",
              "reason" : "Lexical error at line 1, column 12.  Encountered: <EOF> after : \"/dabba\""
            }
          }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-30 11:34:42

您还需要转义反斜杠本身,因为它位于字符串中。这将会起作用:

代码语言:javascript
运行
复制
curl -XPOST "http://127.0.0.1:9200/messages/_search?pretty=true" --data-binary '{
  "query": {
    "bool": {
      "must": [
        {
       "bool" : {
        "should" : [
         {
          "query_string" : {
           "query" : "yabba\\/dabba"
          }
         }
        ]
       }
      }
      ]
    }
  }
}'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45948547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档