文章目录
前言
该技术博客基于Postman工具操作ES,因为ES支持Restful风格
该技术博客阅读还是需要一定的门槛,首先我们需要明白ES中索引、文档等常见名词所代表的意思。
而且还需要掌握Postman工具的基本操作。
如果你已经启动ElasticSearch和Postman,那我们就可以开始学习了!
1、创建索引
索引在ES中的含义类似于MySQL中的数据库
在ES中创建一个名为shopping的索引(ES默认端口为9200):
2、查询索引
只需要将请求方式改为GET即可:
当然了我们也可以查询所有的索引:
3、删除索引
4、创建文档
索引创建好了之后,我们接下来需要创建文档,文档可以看成MySQL中的行,用于存储数据(ES在7版本之后,没有表的概念)
接下来我们在shopping索引中创建一个_doc的文档,并插入数据:
注意:这里的请求方式不能用PUT,因为上述请求发出多次返回的_id不同,说明POST操作不是幂等性,然而PUT是幂等性,所以这里不能使用PUT
当然我们可以在创建文档时候,添加对应的id:
5、主键查询
根据主键1001查询出数据:
6、全查询
上述主键查询只能查询索引中一条数据,如果我们想要查询索引shopping中的所有数据,应该使用 _search 进行全查询:
7、全量修改
对文档中索引为1001的数据进行全量修改:
8、局部修改
对数据中的title属性就行修改:
9、删除数据
我们同样可以把1001数据进行删除:
10、条件查询
查询shopping索引中category = 小米的数据:
当然我们也可以不使用条件进行全查询:
11、分页查询
我们可以从第一页开始,每页查询两条数据:
当然,如果我们查询出来的内容不都是我们想要的,我们可以指定我们显示的内容,例如只显示title:
12、查询排序
我们也可以将查询出来的结果进行排序,例如根据价格进行倒数排列:
13、多条件查询
这种查询方式叫做多条件查询,must类似于and,根据category和price两个条件同时成立进行查询:
上述查询是两个条件同时成立,当然我们也可以任意一个成立进行查询,使用should,类似于or:
14、范围查询
我们可以在上述多条件查询基础上,增加一个范围查询,把价格大于5000的数据查询出来:
15、全文检索
全文检索就是看似我们查询大米粥三个字除了米其他的跟我们数据没有任何关系,但是依旧可以查询成功,原因就是底层会将三个字进行拆解,形成一个个关键字,进行倒排索引匹配,匹配成功就将数据查询出来:
16、完全匹配
虽然底层进行分词,即使我们输入数据中某一个字也能查询出结果,当然还有一个完全匹配查询的方式,使用match_phrase:
17、高亮查询
我们可以将查询出的结果像百度一样,进行高亮显示:
18、聚合查询
我们可以根据价格进行分组,聚合查询:
也可以通过平均价格进行聚合查询:
19、映射条件
首先创建一个user索引,文档名为_mapping:
接下来多插入数据:
然后进行查询name,发现可以查询name,说明有分词效果:
然后查询sex,发现查不到,因为sex使用keyword,是个关键字不可以分词,所以查询不到,必须要完全匹配才能查到:
最后查询 tel,index为false,不能被索引,所以不能被查询,所以查询就会失败: