在这里我们使用postman工具来对es服务器发送请求
1. 创建索引
在es中创建索引,如同在mysql中创建数据库。
使用postman向es服务器发送PUT请求
http://你es服务器的ip地址:9200/store
store是你要创建的索引,可以更替为你自己想要创建的索引名称
如果你创建成功,es应该会返回这样的数据给你

2. 查询索引
这个时候,我们只需要发送GET请求就行了,请求的路径不变,一样是
http://你es服务器的ip地址:9200/store
这个时候es服务器就会将store索引的信息返回给你

当然了,如果你在es服务器中查询没有创建过的索引,es服务器就会报错

如果我们要一次性查询所有的索引,一样只要需要向发送GET请求就行了,只是请求的地址不同,而且要携带参数v而已
http://你es服务器的ip地址:9200/_cat/indices?v

3. 删除索引
删除索引的操作也很简单,只要发送DELETE请求就可以了
http://你es服务器的ip地址:9200/store

这样我们就成功的将store索引删除了,es服务器也会返回删除成功的信息
4. 创建文档
我们前面有说到es中的文档可以类比为mysql中的表,但是文档和表的使用却不太一样。在mysql中,要往表内添加数据,你首先要设计好表的结构,而在es 7.x 中,你只需要直接添加数据就可以了,添加数据就等同于创建文档。
向es服务器发送POST请求,如果你之前把索引删除了,记得将索引重新创建回来
http://你es服务器的ip地址:9200/store/_doc
同时我们需要在body中携带我们要添加的数据,要添加的数据得是JSON格式的,例如我们添加这样一组数据
{
"titel": "iphone 11 pro max",
"category": "apple"
}
在添加成功后,es服务器就会返回信息给你

6. 查询文档数据
在刚刚,我们添加数据的时候,es服务器返回的json字符串中,有一个属性 “_id” ,我们可以通过这个属性的值来查找相对应的数据
主键查询
这里要通过GET请求的方式来查找
http://你es服务器的ip地址:9200/store/_doc/(_id属性的值)

如果你查询不存在的id,es服务器也会返回消息,告诉你的数据不存在。这里由于篇幅限制就不做演示了。
全部查询
一样还是发送GET请求,只不过请求地址有所不同
http://你es服务器的ip地址:9200/store/_search

es服务器就会返回当前索引内的所有数据
7. 修改文档数据
全量修改
这里我们要使用到PUT请求
http://你es服务器的ip地址:9200/store/_doc/(_id对应的值)
body中携带你要更新的数据,发送请求后,再进行查询,你就会发现,原本的数据已经变成了你更新后的数据,不过这种方式的修改,新数据会替换掉所有的旧数据。
局部修改
这里我们要使用POST请求
http://你es服务器的ip地址:9200/store/_update/(_id对应的值)
同时body中携带你要修改的参数,例如我只要修改这个数据的"title"属性,那么可以写成下面这样
{
"doc":{
"title": 新的数据
}
}
这样就只会对数据的title属性的值进行变更,而不会替换掉其他数据
8. 删除文档数据
删除文档数据也十分简单,发送DELETE请求即可
http://你es服务器的ip地址:9200/store/_doc/(_id对应的值)

在删除成功后,es服务器一样会返回信息,如果要删除的id值所对应的数据不存在,es服务器则会返回失败信息。提示你数据不存在。
9. 条件查询
这里我们要使用到GET请求
http://你es服务器的ip地址:9200/store/_search?q=brand:apple
这里的"brand"可以替换为你要查询的属性,而"apple"则是属性的值
如果要查询的条件较多的话,我们可以在GET请求的body中携带JSON格式的参数,例如以下这样
{
"query":{
"match":{
"brand":"apple"
}
}
}
10. 多条件查询
多条件查询一样使用GET请求,只是body请求体中要写得比较麻烦
请求地址
http://你es服务器的ip地址:9200/store/_search
body数据示范
{
"query":{
"bool":{
"should":{
"match":{
"brand":"apple"
}
"match":{
"brand":"华为"
}
}
}
}
}
其中"match"中的数据表示查询条件,"should"则表示或的意思,即"brand"为"apple"或"华为"的数据都会被查询到。当然我们也可以用"must"表示并,例如下面这样。
{
"query":{
"bool":{
"must":{
"match":{
"brand":"apple"
}
"match":{
"price": 7000
}
}
}
}
}
这样就是代表要查询"brand"为"apple"且"price"为7000的数据了
11. 分页查询
这里使用GET请求,请求地址同上
http://你es服务器的ip地址:9200/store/_search
我们只需要在GET请求的body中携带分页信息就行
其中,from表示数据的起始位置,size表示要显示的数据个数,_source表示要显示的数据,sort表示排序条件例如
{
"query":{
"match":{
"brand":"apple"
}
"from":0,
"size":10,
"_source":["brand"]
"sort":{
"price":{
"order":"desc"
}
}
}
}
这样就是告诉es服务器,我们的分页查询条件,即从第0个数据开始,展示10个数据,只显示brand这一列的数据,排序根据price属性,进行降序排序。
12. 范围查询
一样使用GET请求,请求地址
http://你es服务器的ip地址:9200/store/_search
同时我们在GET请求的body中携带JSON数据,来表示查询条件,例如以下这样
{
"query":{
"bool":{
"filter":{
"range":{
"price":{
"gt":3000
"lt":5000
}
}
}
}
}
}
"price"是我们要进行范围查询的属性,其中"gt"代表大于,"lt"代表小于,"gte"代表大于或等于,"lte"代表小于或等于