快速入门ElasticSearch(上)( 五 )


快速入门ElasticSearch(上)文章插图
在前面文档的id都是开发者自己来指定的 , 其实还可以让ES自己来生成 , 不过此时需要使用的是POST方法 , 相应的代码如下所示:
{ "name": "《彷徨》", "isbn": "978-7-134-34663-7", "price": 69, "published": "2019-09-01 10:01:01"}其中Postman对应的操作如下所示:
快速入门ElasticSearch(上)文章插图
可以看到此时的文档id就是ES自动为我们所生成的字符串 , 这样关于数据的插入就先学习到这 。
数据修改在简单学完如何插入数据之后 , 接下来开始学习如何对数据进行修改 。 对数据修改有两种方式:直接修改文档和脚本修改文档 。 首先学习直接修改文档这种方式 , 在前面我们已经成功的往book这一索引中添加了两条记录 , 接下来就尝试将之前文档id为1的记录的《朝花夕拾》修改为《呐喊》 , 继续使用Postman测试工具同时使用POST方法 , 注意此时的API接口为/book/novel/1/_update , 后面必须添加_update参数:
快速入门ElasticSearch(上)文章插图
此时开发者填入的JSON信息必须包裹在doc字段中 , 这个doc字段用于表明这是直接修改文档方式:
{ "doc": {"name": "《呐喊》" }}之后点击确认 , 可以发现name属性的值的确发生了变化:
快速入门ElasticSearch(上)文章插图
快速入门ElasticSearch(上)文章插图
除了上面介绍的直接修改文档方式外 , 开发者还可以使用脚本修改文档这一方式 。 ES支持多种脚本语言 , 这里以内置的脚本语言painless为例进行说明 , 注意无论是直接修改文档还是通过脚本来修改文档 , 其对应的API接口是不变的 , 依旧为/book/novel/1/_update , 但是前面的doc需要修改为script:
{ "script": {"lang": "painless","inline": "ctx._source.price +=20" }}
快速入门ElasticSearch(上)文章插图
请注意其中的ctx表示上下文 , _scorce则是获取资源 , 而后面则是得到了文档的属性 。 不过这样有一个问题:直接将参数写进了语句中 , 而无法动态注入 , 其实上面的写法可以采用动态属性注入的方式:
{ "script": {"lang": "painless","inline": "ctx._source.price=params.price","params": {"price": 100} }}这样就可以实现属性的动态赋值 , 那么关于数据的简单修改就学习到这里 。
数据删除接下来开始学习如何删除数据 , 这里主要学习如何删除文档和索引 。 首先学习如何删除文档 , 可以借助于Postman测试工具 , 选择使用DELETE方法 , 然后输入API接口为/book/novel/1 , 注意这里需要添加文档id , 然后点击提交即可删除文档 。
接下来是删除索引 , 注意索引除非是必要删除 , 否则不要轻易删除 , 因为删除它会删除它所包含的所有数据 。 同样删除索引也可以借助于Postman测试工具 。 选择使用DELETE方法 , 然后输入API接口为/book , 注意这里仅仅是需要添加索引名称 , 然后点击提交即可删除索引 。 其实删除索引还可以借助于Head插件来完成 , 点击movie索引的“动作”按钮 , 然后选择“删除” , 之后弹出输入框 , 开发者输入“删除”后 , 点击确定即可完成删除:
快速入门ElasticSearch(上)文章插图


推荐阅读