前言
往期文章有写过Kibana、elasticsearch-head操作ElasticSearch,我们知道ElasticSearch是支持REST Full的,那么同理我们可以使用PostMan发送REST Full请求来操作ElasticSearch。关于PostMan的安装这里我就不逼逼了,这里值得注意的是PostMan这个软件,前两天既然以50多亿美元被收购了。牛逼!
索引操作
我们知道PUT操作具有幂等性,如果再次请求的话那么就会有问题!
ElasticSearch中已经存在这个索引了,再次创建那么就会给出上面提示!我们切换一下使用POST创建试试!
那么在索引操作的时候是不能使用POST的!
获取索引
删除索引
文档操作
添加索引数据
这里索引后面_doc是代表添加数据的意思,注意这里只能是POST请求,如果使用PUT的话报错!
注意,每次POST的时候,即使数据是存在的,那么返回的id也是不一样的,因为每次POST的时候都会由ElasticSearch生成随机id,并且这个id会作为数据的唯一性标识使用,当然我们也可以使用这个id来查询数据,由于id是ElasticSearch随机生成的,记起来比较麻烦!
指定id给索引添加数据
由于我们这里指定了id,即使我们重复请求,那么这里的id也是不会便更的,也就是幂等性的,当然指定id后我们也可以使用PUT请求测试
注意每次操作这个数据的时候Version都会+1
根据id查询数据
查询当前索引下数据
根据id全量修改数据(覆盖性修改)
根据id增量修改数据(部分修改)
这里不能像创建那样使用_doc了而是更改为_update,请求方式更改为POST,因为是局部更改,可以更改多次,那么不受幂等性约束!
根据id删除数据
高级查询
根据指定条件查询数据
这里的q和Kibana中的query一样,这里需要注意下,在URL请求中有些转义的问题和中文乱码问题,所以通常我们条件查询是会使用请求体body传值
根据指定条件查询数据(请求体传值body)
请求体查询所有数据
这里的JSON数据属性名和Kibana中的查询一样
分页查询
指定查询返回字段
根据指定字段排序
多条件查询and
bool代表的是条件,数组must代表的是必须满足,类似于MySQL中的and,也就是说数组must中的条件必须满足
多条件查询or
should和MySQL中的or类似,也就是说查询满足name为tao的或者name为yyy的都行
范围过滤查询
全文检索-模糊搜索
这里查询条件为毛金,那么ElasticSearch会帮我们把毛金拆分为毛和金这二字进行匹配,那么数据中包含毛或者金的都将被检索出来!
完全匹配
这里使用的是match_phrase,match_phrase并不是必须等于某个值,只是不会将值进行拆分,还是进行模糊包含匹配的
高亮显示
聚合查询
这里直接查询是会带出一些原始数据的,如下
设置size可以省略原始数据
处理分组我们还可以使用平均值,如下
聚合查询 省略原始数据(平均)