示例图:
注:上述中是没有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" } } }示例图:
组合(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查询相当于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安装教程