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查询的结果