ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解 (3)

示例图:

在这里插入图片描述


注:上述中是没有123456这条数据,这样只是为了做下简单的测试而已。

范围(range )查询

range可以理解为SQL中的><符号,其中gt是大于,lt是小于,gte是大于等于,lte是小于等于。

命令示例:

GET test1/_doc/_search { "query": { "range": { "uid": { "gt": 1234, "lte": 12345 } } } }

在这里插入图片描述

存在(exists)查询

exists可以理解为SQL中的exists函数,就是判断是否存在该字段。

这里我们新增一条没有msgcode的字段,然后用exists去查询。

POST test1/_doc/3 { "uid" : "123456", "phone" : "12345678909", "message" : "qq", "sendtime" : "2019-03-14 01:57:04" }

存在查询命令示例:

GET test1/_doc/_search { "query": { "exists": { "field":"msgcode" } } }

示例图:

ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解


在这里插入图片描述

组合(bool)查询

bool 可以用来合并多个过滤条件查询结果的布尔逻辑,它包含这如下几个操作符:

must : 多个查询条件的完全匹配,相当于 and。

must_not ::多个查询条件的相反匹配,相当于 not。

should : 至少有一个查询条件匹配, 相当于 or。

查询的命令示例:

GET /test1/_search { "query": { "bool": { "must": { "term": { "phone": "12345678909" } }, "must_not": { "term": { "uid": 12345 } }, "should": [ { "term": { "uid": 1234 } }, { "term": { "uid": 123456 } } ], "adjust_pure_negative": true, "boost": 1 } } }

示例图:

在这里插入图片描述

模糊(wildcard)查询

wildcard查询相当于SQL语句中的like语法,只不过它查询的数据需要加上*符号。

模糊查询命令示例:

GET /test1/_search { "query": { "wildcard": { "message":"*wu*" } } }

在这里插入图片描述

正则(regexp)查询

regexp可以支持正则查询,比如查询短信内容中的验证码之类的。

下面的这个示例就是查询以xu开头,后面是0-9数字的内容的数据。

正则查询命令示例:

GET /test1/_search { "query": { "regexp": { "message":"xu[0-9]" } } }

示例图:

在这里插入图片描述

查询语句的示例到这里就差不多就结束了,这里在推荐一下kinaba查询的几个小技巧,如图所示:

在这里插入图片描述

其它

参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

ElasticSearch个人已经使用一年多了,在学习的过程中也积攒了一些相关资料其,只不过今年特别忙,没有太多时间将其整理成博客进行分享了。说来惭愧,今年写博客的数量有些少了,下半年自己从一个周更博主变成了月更博主了,不过后面若是时间充足的话也会多些一些的,再忙每个月至少也会写一篇 ヾ(◍°∇°◍)ノ゙

ElasticSearch实战系列:
ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程

音乐推荐

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssddg.html