Kibana查询字符串长度

Ton*_*dig 3 elasticsearch kibana

有没有办法在Kibana中查询一定长度的值?

例如,给定以下两个KV对:

key: "some"
key: "something"
Run Code Online (Sandbox Code Playgroud)

我想搜索key.length> 5并仅检索"某事".

我看到的另一个选项是从logstash添加一个标签,但是我将不得不重新加载几百GB.

jgi*_*son 6

您可以通过 Lucene 查询语法使用正则表达式查询来完成此操作。例如,key:/.{6,}/仅匹配其关键字段包含 6 个字符或更多字符的记录。

HT关于 Solr 的类似问题(也使用 Lucene 的查询引擎)。


che*_*ohi 5

您可以使用脚本查询在Kibana中执行此操作.Kibana中的脚本查询,密码长度大于5的脚本查询示例:

{
    "query": {
        "filtered": {
            "filter": {
                "script": {
                    "script": "doc['key'].getValue().length() > 5"
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

而且您还需要在elasticsearch中启用脚本搜索,您需要将以下配置添加到elasticsearch.yml:

 script.engine.groovy.inline.search: on
Run Code Online (Sandbox Code Playgroud)