在kibana搜索的时候,可以简单的使用 Lucene通用的语法,或者使用基于JSON格式QueryDSL(DSL:领域特定语言)来构造搜索各种请求(更加灵活,方便构造复杂查询)。
ElasticSearch 的各种语法,我还算熟悉的,但是在kibana这个强大的图表系统里面,居然迷失自我了 。
Lucene提供了方便您创建自建查询的API,也通过QueryParser提供了强大的查询语言。
本文讲述Lucene的查询语句解析器支持的语法,Lucene的查询语句解析器是使用JavaCC工具生成的词法解析器,它将查询字串解析为Lucene Query对象。
项(Term)
一条搜索语句被拆分为一些项(term)和操作符(operator)。项有两种类型:单独项和短语。
单独项就是一个单独的单词,例如”test” , “hello”。
短语是一组被双引号包围的单词,例如”hello dolly”。
多个项可以用布尔操作符连接起来形成复杂的查询语句(AND OR )。
域(Field)
Lucene支持域。您可以指定在某一个域中搜索,或者就使用默认域。域名及默认域是具体索引器实现决定的。kibana的默认域就是message …. message会包含你所有日志,包括你grok过滤之后的。
他的搜索语法是: 域名+”:”+搜索的项名。
举个例子,假设某一个Lucene索引包含两个域,title和text,text是默认域。如果您想查找标题为”The Right Way”且含有”don’t go this way”的文章,您可以输入:
title:”The Right Way” AND text:go
或者
title:”Do it right” AND right
因为text是默认域,所以这个域名可以不行。
注意:域名只对紧接于其后的项生效,所以
title:Do it right
只有”Do”属于title域。”it”和”right”仍将在默认域中搜索(这里是text域)。
项修饰符(Term Modifiers)
Lucene支持项修饰符以支持更宽范围的搜索选项。
kibana默认就是lucene搜索的,一些模糊搜索是可以用通配符,Lucene支持单个与多个字符的通配搜索。
使用符号”?”表示单个任意字符的通配。
使用符号”*”表示多个任意字符的通配。
单个任意字符匹配的是所有可能单个字符。例如,搜索”text或者”test”,可以这样:
te?t
多个任意字符匹配的是0个及更多个可能字符。例如,搜索test, tests 或者 tester,可以这样:
test*
您也可以在字符窜中间使用多个任意字符通配符。
te*t
注意:您不能在搜索的项开始使用*或者?符号。
范围查询
有一些需求是range的范围类型的,
mod_date:[20020101 TO 20030101]
- 1
模糊查询
Lucene支持基于Levenshtein Distance与Edit Distance算法的模糊搜索。要使用模糊搜索只需要在单独项的最后加上符号”~”。例如搜索拼写类似于”roam”的项这样写:
roam~
这次搜索将找到形如foam和roams的单词。
注意:使用模糊查询将自动得到增量因子(boost factor)为0.2的搜索结果.
邻近搜索(Proximity Searches)
Lucene还支持查找相隔一定距离的单词。邻近搜索是在短语最后加上符号”~”。例如在文档中搜索相隔10个单词的”apache”和”jakarta”,这样写:
“jakarta apache”~10
Boosting a Term
Lucene provides the relevance level of matching documents based on the terms found. To boost a term use the caret, “^”, symbol with a boost factor (a number) at the end of the term you are searching. The higher the boost factor, the more relevant the term will be.
Lucene可以设置在搜索时匹配项的相似度。在项的最后加上符号”^”紧接一个数字(增量值),表示搜索时的相似度。增量值越高,搜索到的项相关度越好。
Boosting allows you to control the relevance of a document by boosting its term. For example, if you are searching for jakarta apache and you want the term “jakarta” to be more relevant boost it using the ^ symbol along with the boost factor next to the term. You would type:
通过增量一个项可以控制搜索文档时的相关度。例如如果您要搜索jakarta apache,同时您想让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,也就是您输入:
jakarta^4 apache
This will make documents with the term jakarta appear more relevant. You can also boost Phrase Terms as in the example:
这将使得生成的doucment尽可能与jakarta相关度高。您也可以增量短语,象以下这个例子一样:
“jakarta apache”^4 “jakarta lucene”
By default, the boost factor is 1. Although, the boost factor must be positive, it can be less than 1 (i.e. .2)
默认情况下,增量值是1。增量值也可以小于1(例如0.2),但必须是有效的。
布尔操作符
布尔操作符可将项通过逻辑操作连接起来。Lucene支持AND, “+”, OR, NOT 和 “-”这些操作符。(注意:布尔操作符必须全部大写)
OR
OR操作符是默认的连接操作符。这意味着如果两个项之间没有布尔操作符,就是使用OR操作符。OR操作符连接两个项,意味着查找含有任意项的文档。这与集合并运算相同。符号||可以代替符号OR。
搜索含有”xiaorui.cc apache” 或者 “xiaorui.cc”的文档,可以使用这样的查询:
“jakarta apache” jakarta
"xiaorui.cc apache" xiaorui.cc
或者
"xiaorui.cc apache" OR xiaorui.cc
- 1
- 2
- 3
一定要搞明白 xiaorui.cc haproxy 是每条数据,这要匹配一个也算匹配到得。 这很容易让人误会以为是 AND的效果。
AND
AND操作符匹配的是两项同时出现的文档。这个与集合交操作相等。符号&&可以代替符号AND。
搜索同时含有”jakarta apache” 与 “jakarta lucene”的文档,使用查询:
"jakarta apache" AND "jakarta lucene"
- 1
+
“+”操作符或者称为存在操作符,要求符号”+”后的项必须在文档相应的域中存在。
搜索必须含有”jakarta”,可能含有”lucene”的文档,使用查询:
+jakarta apache
他其实跟AND 是有些像的,直接在lucene query ==》 A B的话,意思是 A 或者B的。 这有些蛋疼… …
NOT
NOT操作符排除那些含有NOT符号后面项的文档。这和集合的差运算相同。符号!可以代替符号NOT。
搜索含有”jakarta apache”,但是不含有”jakarta lucene”的文档,使用查询:
“jakarta apache” NOT “jakarta lucene”
注意:NOT操作符不能单独与项使用构成查询。例如,以下的查询查不到任何结果:
NOT “jakarta apache”
-
“-”操作符或者禁止操作符排除含有”-”后面的相似项的文档。
搜索含有”jakarta apache”,但不是”jakarta lucene”,使用查询:
“jakarta apache” -”jakarta lucene”
分组(Grouping)
Lucene支持使用圆括号来组合字句形成子查询。这对于想控制查询布尔逻辑的人十分有用。
搜索含有”jakarta”或者”apache”,同时含有”website”的文档,使用查询:
(jakarta OR apache) AND website
这样就消除了歧义,保证website必须存在,jakarta和apache中之一也存在。
转义特殊字符(Escaping Special Characters)
Lucene支持转义特殊字符,因为特殊字符是查询语法用到的。现在,特殊字符包括
+ – && || ! ( ) { } [ ] ^ ” ~ * ? : \
转义特殊字符只需在字符前加上符号,例如搜索(1+1):2,使用查询
(1+1):2
相关推荐
Kibana是Elastic Stack(前称为ELK Stack)中的一个重要组件,它为Elasticsearch提供了直观的用户界面,使得用户能够轻松地搜索、分析以及可视化存储在Elasticsearch中的大量数据。在Kibana 7.6.2版本中,我们看到了...
10. 多语言支持:为了满足全球用户的需求,Kibana支持多种语言,包括中文,使得非英语国家的用户也能轻松操作。 通过Kibana,无论是数据分析师、开发人员还是业务人员,都能以直观的方式洞察数据,挖掘隐藏的价值,...
Kibana的最新版本是8.5.3,针对Windows操作系统提供了64位版本的软件包。 Kibana的核心功能主要包括以下几个方面: 1. **数据可视化**:Kibana的可视化工具允许用户创建各种图表,如折线图、柱状图、饼图、热力图...
标题中的“kibana-7.17.9-windows-x86-64.zip”表示的是Kibana的7.17.9版本,针对Windows操作系统,且适用于64位架构。这个压缩包包含了Kibana的所有组件,供用户在Windows环境下安装和使用。 Kibana的功能主要包括...
Kibana是Elastic Stack(又称ELK Stack)中的重要组件之一,它为Elasticsearch提供了直观的用户界面,使得数据可视化、搜索、分析以及操作日志数据变得极其便捷。在本篇中,我们将详细探讨如何在Windows平台上安装并...
标题“kibana-8.3.2-windows-x86_64.zip”指的是Kibana的特定版本——8.3.2,适用于Windows操作系统且为64位架构。这个zip压缩包包含了Kibana的所有必需组件和配置文件,供用户在本地安装和运行。 Kibana的主要特点...
Kibana 7.10.1是该软件的一个特定版本,专为Windows操作系统进行了优化,提供了一种在Windows环境下交互式地查看和操作数据的强大方式。 1. **Kibana的功能特性** - **数据可视化**:Kibana的核心功能之一是创建...
在本篇文章中,我们将深入探讨 Kibana 4.4.0 版本在 Windows 操作系统上的安装、配置与使用,帮助读者全面掌握这一强大数据分析工具。 一、安装 Kibana 4.4.0 1. 下载:首先,你需要从官方网站或者通过给定的...
**Elasticsearch 5.2.0 和 Kibana 5.2.0:构建高效的大数据搜索引擎** Elasticsearch 是一个开源的全文搜索引擎,基于 Lucene 库,设计为分布式、可扩展、实时的搜索和分析引擎。它提供了一个 RESTful 风格的接口,...
Elasticsearch Kibana 是一个功能强大且灵活的搜索和数据分析平台,提供了强大的查询功能。今天,我们将深入探讨 Elasticsearch Kibana 的简单查询讲解。 一、CRUD 操作 Elasticsearch Kibana 提供了基本的 CRUD...
3. 探索器:Kibana的探索器允许用户通过搜索和过滤来交互式地查看和分析数据。 4. 仪表板:创建自定义仪表板,将多个视觉元素组合在一起,提供整体视图。 安全与权限管理: Kibana支持Elasticsearch的Security插件...
这个“kibana-4.1.1-windows”压缩包就是专为Windows操作系统设计的Kibana版本,让我们深入了解一下这个工具的强大功能和安装过程。 一、Kibana简介 Kibana的核心功能包括数据探索、仪表板构建、实时监控和定制报告...
Kibana是 Elastic Stack(前称为Elasticsearch ELK Stack)的重要组成部分,它提供了一个直观的用户界面,用于搜索、可视化和分析存储在Elasticsearch中的数据。在这个讨论中,我们将深入探讨Kibana 5.1.1的Windows...
在Kibana 8.13.2版本中,我们看到的是针对Windows x86_64架构优化的版本,这使得在Windows操作系统上进行大数据可视化变得更加便捷。 首先,让我们深入了解Kibana的功能。Kibana提供了一个用户友好的界面,让用户...
4. API访问:Kibana提供RESTful API,允许自动化脚本或外部应用与其交互,进行数据导入导出等操作。 四、Kibana 6.0.0的改进与新特性 在6.0.0版本中,Kibana带来了一些重要的更新,比如: - 更直观的用户界面:...
Elasticsearch 作为底层存储和搜索平台,Kibana 作为数据可视化和分析工具,两者结合形成了强大的日志分析、监控和业务洞察解决方案。常见的应用场景包括: 1. **日志分析**:收集和分析服务器、应用程序或网络设备...
10. **实时监控**:Kibana的Discover界面可以实时显示和搜索数据,这对于监控系统日志、性能指标或其他实时数据流非常有用。 11. **仪表板**:用户可以将多个可视化组件组合到一个仪表板上,形成一个综合视图,用于...
在"Kibana 6.2.4 for Windows"版本中,用户可以在Windows操作系统环境下享受到强大的数据可视化和分析功能。 Kibana的核心特性包括: 1. 数据探索:Kibana提供了一个直观的界面,让用户能够通过搜索和过滤来探索...
Kibana是一个基于Web的界面,允许用户通过Elasticsearch存储的数据进行搜索、查看和交互。它支持创建自定义仪表板,显示实时数据的图表、表格和地图,帮助用户从海量信息中提取洞察。 **Kibana 7.12.0的关键特性** ...