首页 > 解决方案 > 使用正则表达式在 kibana 弹性搜索之间查找字符串,如 splunk

问题描述

splunk中,我们可以过滤掉两个字符串之间的动态字符串。

比如说,

<TextileType>Shirt</TextileType>
<TextileType>Trousers</TextileType>
<TextileType>Shirt</TextileType>
<TextileType>Trousers</TextileType>
<TextileType>Shirt</TextileType>

我期待的输出:

Shirt - 3
Trousers - 2

我可以轻松地在 splunk 中做到这一点。

从谷歌复制的图片(不准确) 在此处输入图像描述

我怎样才能在Kibana中实现这一点?
尝试了很多方法,但无法根据我的需要 做任何正则表达式。

注意:这是示例 json 查询,我需要在其中添加正则表达式。在这个例子中,我只是想手动搜索“衬衫”,我希望它是动态的。

{
  "query": {
    "match": {
      "text": {
        "query": "Shirt",
        "type": "phrase"
      }
    }
  }
}

标签: regexelasticsearchkibana

解决方案


考虑到数据在示例索引中,您可以使用通配符搜索:

GET /sample/_search
{
    "query": {
        "wildcard":{
            "column2":"*Shirt*"
            }
        }
}

注意它如何只返回包含关键字Shirt的结果

在此处输入图像描述

如果您要清理数据,则需要通过 logstash 管道运行它以剥离 XML 标记并留下文本。


推荐阅读