You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch正则表达式匹配含空格内容失效问题求助

Elasticsearch正则匹配keyword字段空格问题的解决方案

问题根源

你的问题出在JSON转义与Elasticsearch正则引擎的双重转义要求上:

  • 当你在JSON查询DSL中写\s时,JSON会先把它解析成普通字符s,导致正则实际匹配的是AkeshsJadhav,自然无法匹配原文档里的空格。
  • 你尝试的\\s在JSON中会被解析成\s,但部分客户端(比如直接写JSON文件)可能还需要再转一层,才能让Elasticsearch正则引擎识别为空白符匹配符。

正确的正则写法

以下几种写法都可以实现需求:

  1. 双重转义匹配任意空白符
    在JSON字符串中,需要把\s写成\\\\s(每个反斜杠都要被JSON转义一次),最终的查询DSL示例:

    {
      "query": {
        "regexp": {
          "content.keyword": "Akesh\\\\sJadhav"
        }
      }
    }
    

    如果是在Kibana Dev Tools这类自带转义处理的环境中,可以简化为Akesh\\sJadhav:

    GET /your_index_name/_search
    {
      "query": {
        "regexp": {
          "content.keyword": "Akesh\\sJadhav"
        }
      }
    }
    
  2. 直接匹配单个空格
    如果确定是单个普通空格,也可以直接写空格,或者用字符类包裹,避免转义问题:

    {
      "query": {
        "regexp": {
          "content.keyword": "Akesh Jadhav"
        }
      }
    }
    

    或者用字符类精确匹配空格:

    {
      "query": {
        "regexp": {
          "content.keyword": "Akesh[ ]Jadhav"
        }
      }
    }
    

验证说明

以上写法都会匹配content.keyword字段中包含Akesh后跟空白符(或精确空格)再跟Jadhav的内容,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Rutuja Morye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 00:58:14