首先启动ES服务器,打开它的bin目录,双击它的可执行文件,打开黑窗口。
ES软件,支持分布式RESTful风格的方式进行请求访问,所以打开Postman工具,点击左边的加号,创建一个Collection叫ES基础操作,用来管理后续的请求路径的。
索引
1.创建索引
对比关系型数据库,创建索引就等同于创建数据库。那么,在Postman 中,向ES服务器发送PUT请求,创建一个叫shopping的索引:http://127.0.0.1:9200/shopping。这里的http://127.0.0.1:9200表示ES软件,shopping表示索引名称。
注意,请求的方法比较重要,选择的是PUT不要选择post的,然后点击Send发出请求,点击完成以后,会返回一个JSON格式的响应结果,其中 “acknowledged”: true表示响应成功,就说明创建成功了,名字就叫shopping。
由于PUT的具有幂等性,如果这时候再发出了同样的请求,它的结果是一样的,就意味再去创建就会有问题。再点击Send,就会提示它已经存在了。
如果这里想使用POST请求,点击Send之后发现,这是不允许使用POST的,因为POST是没有幂等性的,就意味着它的两次操作可能结果不一样,这个是不允许的。它只允许HEAD、DELETE、GET、PUT请求。GET获取索引,DELETE删除索引。
2.查询索引
单个查询
查看当前ES中所有的索引信息
3.删除索引
再回去打开GET
文档基本操作
1.文档-创建-POST
随机id
索引已经创建好了,接下来创建文档,并添加数据。这个操作其实和SQL中添加数据是不一样的,在MySQL中添加数据,还需要增加表,但是新版本的ES中是没有表的概念的,所以添加数据时是直接在索引中添加数据。
在Postman中,向ES 服务器发POST 请求: http://127.0.0.1:9200/shopping/_doc
错误?添加数据的时没有传递数据!需要在Body位置把数据放在请求体中,请求体的格式为JSON格式。
这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为JSON格式。
请求体内容为:
{
“title":“小米手机”,
“category” : “小米”,
“images” :“http: / / www. gulixueyuan.com/ xm.jpg”,
“price” :3999.00
}
注意,这里只能使用POST不能使用PUT
当数据创建成功时,会返回一个id属性,
这个id属性表述的就是数据的唯一性标识,它类似于主键,可以认为是刚刚创建那条数据的标识,而这个标识是由ES软件随机生成的。所以,同样的请求在多次执行之后,返回的结果是不一样的,就说明这个操作不是幂等性的,而PUT请求必须是幂等性的,所以这里不能使用PUT。而POST没有这个要求,是不是幂等性的都可以。
自定义id
数据生成以后,会生成一个随机的id,作为数据的唯一性标识使用,但是想通过这个id来查询文档数据是比较麻烦的。自定义id,需要修改请求路径,在doc后面添加自定义的id,一旦这个请求路径发送到ES软件,此时的ES就不会再生成随机的id了。
如果多次发出同样的请求,其实它的返回结果应该是相同的,这就是一种幂等性的操作。既然是幂等性的,说明PUT请求方式也是可以的。
或者为的更加明确这个操作是一个新增,可以将doc改成create。
2.文档-主键查询
查询成功的情况
查询失败的情况
3.文档-全查询
4.文档-全量修改
5.文档-局部修改
6.文档-删除
如果删除后再删除,