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

如何在Kibana中精准匹配以':1'结尾的Elasticsearch字段数据?

正确查询方法

问题根源

你之前的查询.*:1没有锚定字符串结尾,会匹配所有包含:1的记录(不管:1在什么位置),所以像skdjjsdk:jkdsjkd:123:1:33这种中间带:1的也被命中了。要精准匹配以:1结尾的记录,必须用$锚定字符串末尾,同时要确保查询的是字段的完整原始值(避免分词干扰)。

方案1:Kibana搜索框(Lucene语法)

  • 如果my_field是keyword类型,直接输入:
    my_field: ":1$"
    
  • 如果my_field是text类型,需要用它的keyword子字段(Elasticsearch默认会为text字段生成该子字段,用于存储完整原始值):
    my_field.keyword: ":1$"
    

方案2:Elasticsearch Query DSL

用正则查询锚定结尾,同时指定keyword字段保证匹配完整值:

{
  "query": {
    "regexp": {
      "my_field.keyword": {
        "value": ".*:1$"
      }
    }
  }
}

也可以用通配符查询实现相同效果:

{
  "query": {
    "wildcard": {
      "my_field.keyword": {
        "value": "*:1"
      }
    }
  }
}

最终匹配结果

上述方法只会返回你需要的记录:

skdjjsdk:jkdsjkd:123:1:1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:10:09