Kibana查询语言增强
在6.0中,引入了一种实验性的查询语言Kuery。并将其应用到标准的Kibana查询语言中。因此,Kuery不再作为独立选项提供。使用Kuery保存的搜索将自动选择使用本页介绍的语言增强。 从6.3开始,选择加入将启用scripted field支持和简化、更易于使用的语法 新的简化语法
如果您熟悉Kibana的旧lucene查询语法,那么您应该对新语法感到非常熟悉。基本原理保持不变,我们只是简单地改进了一些东西,使查询语言更易于使用。阅读下面的更改。
response:200 将会匹配文档中出现response字段的值为 200的文档.
使用引号包裹的搜索词(search item)将按短语搜索。
例如,message:“Quick brown fox” 将在message字段中搜索短语“Quick brown fox”。 如果没有引号,您的查询将通过消息字段的配置分析器分解为标记,并将匹配包含这些标记的文档,而不管它们出现的顺序。 这意味着带有“quick brown fox”的文档将匹配,但“quick fox brown”也将匹配。如果你想搜索一个短语,记得用引号。
查询解析器将不再在空格上拆分。
多个搜索项必须用显式布尔运算符分隔。默认情况下,Lucene会将对各个搜索词之间使用or组合起来,因此response:200 extension:php 将变成response:200 或 extension:php。这将匹配response:200或 extension:php 或者 两者都匹配的文档。 >> 请注意,布尔运算符不区分大小写。
组合查询: and
response:200 and extension:php php 将匹配response: 200 并且 extension: php匹配的文档。
默认情况下,and 的优先级高于 or。
response:200 and extension:php or extension:css 将匹配response为200且extension为php的文档,或extension为css且response为任何值的文档。
通过括号分组改变优先级。
response:200 and (extension:php or extension:css) 将匹配response为200且extension为php或css的文档。
单个字段中搜索多个值,使用括号加or或者and。
response:(200 or 404) 搜索response字段中值为200或404的文档。我们还可以通过and搜索包含多个值的文档,例如:tags:(success and info and security)
用not 前缀 可以实现反向查找 (非 … )
not response:200 将匹配responese不是200的所有文档。 整个组(括号中的项)也可以反转。 response:200 and not (extension:php or extension:css)
范围性查找与lucene相似,只是在句法上略有不同。
省略冒号:bytes>1000,而不是bytes:>1000。 这些( >,>=,<,<= ) 都是有效的范围运算符。
Exist查询语法很简单,不需要特殊运算符。response:* 将查找存在response字段的所有文档。
提供通配符查询。
machine.os:win* 将匹配文档,其中machine.os 字段以“win”开头的文档,例如它可以匹配到“windows7”和“windows10”等值。 通配符还允许我们一次搜索多个字段(key)。当你有一个字段的文本和关键字版本时,这会很方便。 假设我们有machine.os and machine.os.keyword 字段,我们要查找值都为 “Windows10”的文档。 我们可以这样做:machine.os*:windows 10。