Elasticsearch查询语句语法

 我来答
天然槑17
2022-07-19 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6415
采纳率:100%
帮助的人:36.4万
展开全部

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

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

查询语句包含一系列词语( 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} 。

比如 ERROR WARNING +INFO -DEBUG :

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

如果要匹配保留字符,则需要在字符前加反斜杠 \ 。保留字符包括: + - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ / 。比如:要搜索 (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下午

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式