Kibana Elasticsearch 中的正则表达式搜索

Syl*_*ism 8 regex elasticsearch kibana

我正在尝试在弹性搜索数据集的消息中使用正则表达式进行搜索。由于某种原因,我无法在搜索栏中传递引擎没有向我大喊大叫的任何内容。

我正在尝试选择表单中 XXX.XX 位数字的三元组。XXX.XX,XXX.XX,XXX.XX,无论我尝试什么,引擎都会一直出错。

这是我的查询

message: /<000-999>/
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误。

KQLSyntaxError: Expected AND, OR, end of input, whitespace but "<" found. message: "DWP_Magnet, Value: " AND message: /<000-999>/
Run Code Online (Sandbox Code Playgroud)

我已阅读文档,我的数据肯定包含我试图指定的值,即

Value: 311.23, 144.00, 155.01
Run Code Online (Sandbox Code Playgroud)

谁能给我任何见解吗?有没有办法使用 Lucene 正则表达式来创建以下表达式?

/d{3}\.\d{2}
Run Code Online (Sandbox Code Playgroud)

Val*_*Val 16

Kibana 搜索栏默认需要 KQL(Kibana 查询语言)表达式。该表达式语言尚不支持正则表达式。

您需要通过单击搜索栏末尾的弹出窗口从 KQL切换到支持正则表达式的Lucene 表达式语言。KQL

在此输入图像描述

然后就可以使用正则表达式了,比如@unigeek提供的:

message: /[0-9]{3}\.[0-9]{2}/
Run Code Online (Sandbox Code Playgroud)


uni*_*eek 5

您可以简单地将正则表达式包裹在正斜杠中,如下所示:

message: /[0-9]{3}\.[0-9]{2}/
Run Code Online (Sandbox Code Playgroud)

但我想你已经知道这一点了。也许只是不清楚您需要什么正则表达式 - 这是正则表达式的常见情况。

编辑 1:请注意,Elasticsearch 使用 Lucene 而不是 Perl 兼容正则表达式 (PCRE) 库,因此我相信使用 'd' 不可能匹配单个数字。

编辑2:有用的链接在此输入图像描述