美文网首页ELK漫漫之路
kibana使用Lucene语法

kibana使用Lucene语法

作者: 续哥儿 | 来源:发表于2018-08-09 12:21 被阅读0次

    以下Kibana搜索栏中搜索(lucene语法)
    。。。。。从印象笔记贴过来变形了。。。。。。。。。。。

    6.2.1的Elasticsearch "lucene_version" : "7.2.1"

    http://lucene.apache.org/core/7_2_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package.description
    以下以此条举例:

    @timestamp:August 30th 2018, 19:37:45.034 time:August 30th 2018, 19:37:45.000 detail:user_activities_direct_reward_base_ex.go:22: activity direct reward submit (14008, -1) err (submitted).

    1.语法关键字 :

    + - && || ! ( ) { } [ ] ^ " ~ * ? : \ 如果所要查询的查询词中本身包含关键字,则需要用\进行转义

    2.不分词查询(Term)---全文搜索 注:引号内通配符不适用

    例:搜索 "submitted" 即可找到我们所需的**

    搜索 "submitt" 将什么都搜不到**

    搜索 sub* 也能搜索到---这里主要不要加引号**

    3.域内查询(filed)---指定搜索范围 注:引号内通配符不适用**

    例:搜索 detail: " activity direct reward submit" 只匹配detail区域内的 activity direct reward submit关键字**

    搜索 detail:activi?? 只匹配detail区域内的 activi关键字**

    搜索 detail:activity direct reward submit 可以认为是OR查询 detail区域只对activity生效 direct reward submit这3个单词则为全文搜索,任意一个匹配都会被抓出

    4.通配符查询 支持两种通配符:?表示一个字符,*表示多个字符`

    例 activi?y acti*y **

    Note: You cannot use a * or ? symbol as the first character of a search.

    5.模糊查询 ------- (默认2,可选范围0-2,浮点数表示在Lucene5.0中已移除)

    模糊查询的算法是基于 Damerau-Levenshtein Distance,也即当两个词的差别小于距离

    例:搜索 submitt~2

    例: 搜索 submitt~1 就无法搜索出 submitted

    6.临近搜索

    例 搜索 "activity  submitted"~10 表示activity  submitted这2个单词间可以相隔10个单词 "activity  submitted"~2 就搜索不出数据
    

    7.正则查询---正则查询需要在2个/之间(不是太好用,也可能我不会用---贴上官方案例)

    Lucene supports regular expression searches matching a pattern between forward slashes "/". The syntax may change across releases, but the current supported syntax is documented in the RegExp class. For example to find documents containing "moat" or "boat":

    /[mb]oat/

    8.区间查询:

    区间查询包含两种,一种是包含边界,用[A TO B]指定,一种是不包含边界,用{A TO B}指定。

    例 time:[2018-08-30T11:36:00 TO 2018-08-30T11:37:00],当然区间查询不仅仅用于时间,如title:{Aida TO Carmen}

    9.权重查询---(默认为1,仍然可以小于1--不知道小于1的意义何在)

    可以在查询词后面加^N来设定此查询词的权重,默认是1,如果N大于1,则说明此查询词更重要,如果N小于1,则说明此查询词更不重要。

    如jakarta^4 apache,"jakarta apache"^4 "Apache Lucene"

    10.布尔查询

    布尔操作符包括连接符,如AND(+),OR,和 NOT (-) 必须全大写

    例:detail:"submitted" AND fields.GameZone: "ios2" 等同 +detail:"submitted"+fields.GameZone: "ios2"

    11.混合查询

    例 ( submitted OR expired ) AND time:[2018-08-30T11:36:00 TO 2018-08-30T11:37:00] 包含 submitted 或者 expired并且在这个时间段内的数据

    12.区域混合查询

    例 detail:(+submitted -" expired in pack table")

    以下是调用API的搜索

    在http/xxx.com/index/_search?q=就是querystring语法

    全文检索 q=dog

    区域检索 q=animal:dog

    单字段精确检索 q=animal:"dog"

    多个组合条件检索 q=animal:("dog" OR "cat") AND NOT kind: "wild"

    字段存在 exists:animal 字段不存在missing: animal

    用~表示近似搜索(放在末尾)

    对数值和时间都可以进行范围搜索[中括号表示端点数值包含在内], {大括号表示端点数值不包含在内},当然也可以使用>< =这些。


    相关文章

      网友评论

        本文标题:kibana使用Lucene语法

        本文链接:https://www.haomeiwen.com/subject/qyhsmftx.html