elasticsearch

Elasticsearch查询语句语法

2017-08-28  本文已影响558人  Evelynzzz

使用KIBANA查询ES中的数据

在搜索时,一定要选择合理的时间范围,这个时间范围是基于创建索引模式时选择的时间字段。比如@timestamp

另外一个小提示:默认情况下,搜索结果列表的上方会显示一个柱状图。可以点击左下角的小箭头,查看其他的信息,比如搜索结果对应的ES请求主体等。

Elasticsearch查询语句语法

查询语句包含一系列词语(term)和操作符。一个词语可以是一个单词,比如INFO
也可以是双引号包围的一个短语,比如"INFO make",这种情况下会搜索这整个短语,按照单词在短语中的顺序。

指定字段名称

默认情况下,会在所有字段中匹配要搜索的词语。或者我们也可以指定要搜索的字段。比如以下查询:

使用通配符

通配符搜索适用于单个单词中,使用替换单个字符,*替换零个或多个字符。比如:tags:trust* OR tes?的查询结果如下。注意这个查询中的tes?是用于匹配所有字段的内容。如果要限定tags字段,则应该查询tags:(trust* OR tes?)
另外,使用通配符查询是很占用内存的。

正则表达式

比如查询tags:/trust*/。具体正则表达式语法参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html#regexp-syntax

模糊操作符

可以搜索相似的词语,比如trsut~,同样会匹配trust

取值范围

范围可以是日期,数值,或者字符串字段的范围。闭区间:[min TO max];开区间:{min TO max};也可以结合在一起:[min TO max}

Boolean操作符

比如ERROR WARNING +INFO -DEBUG

如果使用ANDORNOT操作符(也写作&&||!),则可以转化成:

保留字符

如果要匹配保留字符,则需要在字符前加反斜杠\。保留字符包括: + - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /。比如:要搜索(1+1)=2,则使用语句\(1\+1\)\=2
不过,<>是无法转义的,它们总是会创建一个范围查询。

参考链接

ES文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_ranges

星期六, 26. 八月 2017 05:58下午

上一篇下一篇

猜你喜欢

热点阅读