Kibana正则表达式搜索

时间:2016-11-13 00:12:44

标签: regex kibana elastic-stack

我是ELK的新手。我想根据字段中单词出现的顺序搜索文档。例如,

在doc1,my_field:" MY FOO WORD BAR EXAMPLE"
在doc2,my_field:" MY BAR WORD FOO EXAMPLE"

我想在Kibana查询文件,其中" FOO"之后是" BAR"而不是相反。所以,我希望doc1在这种情况下返回而不是doc2。 我尝试在Kibana搜索中使用以下查询。但是,它不起作用。此查询甚至不会生成任何搜索结果。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<section id='gallery'>
  <img src='http://placehold.it/75x100/000/fff?text=1' class='off'>
  <img src='http://placehold.it/75x100/00f/eee?text=2' class='off'>
  <img src='http://placehold.it/75x100/0e0/111?text=3' class='off'>
  <img src='http://placehold.it/75x100/f00/fff?text=4' class='off'>
  <img src='http://placehold.it/75x100/fc0/000?text=5' class='off'>
  <img src='http://placehold.it/75x100/fff/000?text=6' class='off'>
</section>
<fieldset>
  <button>1</button>
  <button>2</button>
  <button>3</button>
  <button>4</button>
  <button>5</button>
  <button>6</button>
</fieldset>

我也试过了分析字段(只是my_field.raw:/.*FOO.*BAR.*/ ),虽然我知道这不应该有效。当然,这也没有产生任何结果。

请帮我这个正则表达式搜索。为什么我没有得到该查询的任何匹配结果?

3 个答案:

答案 0 :(得分:1)

我不确定为什么正则表达式查询不起作用但我相信Kibana正在使用Elasticsearch的查询字符串查询记录here所以例如你可以做一个短语查询(在链接中记录)通过将您的搜索放在双引号中,它将查找单词&#34; foo&#34;然后是&#34; bar&#34;。这样做也会更好,因为你会在你的分析字段(my_field)上执行此操作,它会对每个单词进行标记,以执行快速查找。所以你在Kibana搜索会是:

my_field:&#34; FOO BAR&#34;

更新:

看起来这是一个恼人的Kibana怪癖(可能出于向后兼容的原因)。无论如何,这并不适合您,因为您正在搜索未分析的字段,显然Kibana默认情况下会降低搜索范围,因此它不会匹配未分析的大写字母&#34 ; FOO&#34 ;.您可以在提及here的Kibana高级设置中对此进行配置,特别是通过设置配置选项&#34; lowercase_expanded_terms&#34;为假。

答案 1 :(得分:0)

Kibana的标准查询语言基于Lucene query syntax

默认分析器会将文本标记为不同的词:[MY,FOO,WORD,BAR,EXAMPLE]

您可以在Kibana中尝试以下搜索字符串,而不是使用正则表达式匹配:

my_field: FOO AND my_field: BAR

如果您的“ my_field”数据看起来像“ MYFOOWORDBAREXAMPLE”(无法被标记化),则应使用查询字符串:

my_field: *FOO*BAR*

答案 2 :(得分:0)

GET /_search
{
    "query": {
        "regexp": {
            "user": {
                "value": "k.*y",
                "flags" : "ALL",
                "max_determinized_states": 10000,
                "rewrite": "constant_score"
            }
        }
    }
}

有关here的详细信息