elasticsearch,lucene,kibana,Regex,elasticsearch,Lucene,Kibana" /> elasticsearch,lucene,kibana,Regex,elasticsearch,Lucene,Kibana" />

Regex Kibana查询语言-在字段中查找数字

Regex Kibana查询语言-在字段中查找数字,regex,elasticsearch,lucene,kibana,Regex,elasticsearch,Lucene,Kibana,我正在努力处理一个简单的查询,这个查询应该可以在很多教程的基础上工作,但无法使它工作。哈文日志字段 Request sent, method=GET, headers={}, queryParams={forceArray=[true]}, entity=null, payload length=null} playerId=102 我正在尝试获取具有3位数值的playerId。以下查询失败 log: /playerId=[0-9]{1,3}/ 使用KQLSyntaxError:Expect

我正在努力处理一个简单的查询,这个查询应该可以在很多教程的基础上工作,但无法使它工作。哈文日志字段

Request sent, method=GET, headers={}, queryParams={forceArray=[true]}, entity=null, payload length=null} playerId=102
我正在尝试获取具有3位数值的playerId。以下查询失败

log: /playerId=[0-9]{1,3}/
使用
KQLSyntaxError:Expected AND,OR,end of input,找到了空格,但找到了“{”和log:/playerId=[0-9]{1,3}/

但是应该按照

log:/playerId=[0-9][0-9][0-9]/
基本上返回带有单个“0”字符的所有内容

由于某些神秘的原因,这个
log:/playerId=*/
没有返回任何内容

编辑

基于lucene的常规弹性搜索查询也不起作用

{
  "query": {
    "regexp": {
      "log": {
        "value": "*playerId*"
      }
    }
  }
}
映射:

{
  "my-index" : {
     "mappings" : {
       "log" : {
        "full_name" : "log",
          "mapping" : {
            "log" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          }
        }
      }
    }
  }
}
谢谢你的帮助

编辑

我在中验证了我的正则表达式查询 他们都在工作

编辑2 这很有效

"query": {
  "match": {
    "log": "playerId"
  }
}
此返回空命中

"query": {
  "regexp": {
    "log": "playerId"
  }
}

这是因为Kibana默认使用(Kibana查询语言),不支持正则表达式

您需要切换到支持您正在尝试的正则表达式的

只需单击搜索栏右端的KQL即可更改搜索语法

还值得注意的是,正则表达式查询是真正的性能消耗者。您应该在接收日志之前真正解析日志,以便可以独立查询playerId字段

在任何情况下,如果您真的想这样做,您的查询与实际情况相差不远。以下是适用于您的情况的正确版本:

{
  "query": {
    "query_string": {
      "query": "/.*playerId=[0-9]{3}/",
      "default_field": "log.keyword"
    }
  }
}

谢谢,但这也没什么帮助,所有查询都不会返回任何内容。您可以通过添加索引映射来更新您的问题吗?添加映射后,regardsIt看起来不是正确的映射。您是否复制/粘贴了位和段?这是GET/my index/\u mapping/field/log查询的结果