快速入门ElasticSearch(上)( 五 )
文章插图
在前面文档的id都是开发者自己来指定的 , 其实还可以让ES自己来生成 , 不过此时需要使用的是POST方法 , 相应的代码如下所示:
{ "name": "《彷徨》", "isbn": "978-7-134-34663-7", "price": 69, "published": "2019-09-01 10:01:01"}
其中Postman对应的操作如下所示:
文章插图
可以看到此时的文档id就是ES自动为我们所生成的字符串 , 这样关于数据的插入就先学习到这 。
数据修改在简单学完如何插入数据之后 , 接下来开始学习如何对数据进行修改 。 对数据修改有两种方式:直接修改文档和脚本修改文档 。 首先学习直接修改文档这种方式 , 在前面我们已经成功的往book这一索引中添加了两条记录 , 接下来就尝试将之前文档id为1的记录的《朝花夕拾》修改为《呐喊》 , 继续使用Postman测试工具同时使用POST方法 , 注意此时的API接口为/book/novel/1/_update , 后面必须添加_update参数:
文章插图
此时开发者填入的JSON信息必须包裹在doc字段中 , 这个doc字段用于表明这是直接修改文档方式:
{ "doc": {"name": "《呐喊》" }}
之后点击确认 , 可以发现name属性的值的确发生了变化:
文章插图
文章插图
除了上面介绍的直接修改文档方式外 , 开发者还可以使用脚本修改文档这一方式 。 ES支持多种脚本语言 , 这里以内置的脚本语言painless为例进行说明 , 注意无论是直接修改文档还是通过脚本来修改文档 , 其对应的API接口是不变的 , 依旧为/book/novel/1/_update , 但是前面的doc需要修改为script:
{ "script": {"lang": "painless","inline": "ctx._source.price +=20" }}
文章插图
请注意其中的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索引的“动作”按钮 , 然后选择“删除” , 之后弹出输入框 , 开发者输入“删除”后 , 点击确定即可完成删除:
文章插图
推荐阅读
- 苹果两款新iPad齐曝光:性能提高、入门款更轻薄、售价便宜
- “千店同开”引质量担忧,小米回应
- RHEL 9提升了x86_64处理器的入门要求
- 企业|技术快速迭代倒逼知识产权“贴身”服务,上海首家AI商标品牌指导站入驻徐汇西岸
- 三星Galaxy A52 5G通过3C认证 支持最高15W快速充电
- 入门HiFi享好声,这几款耳机绝对值得入手
- 大健康速递丨腾讯上线疫苗接种服务区;华大基因研发出快速鉴定盒
- DIY从入门到放弃:电源挑贵的买就靠谱吗?
- 小米联合京东及爱回收推全新换机服务 帮你快速换新机
- 西安奕斯伟硅产业基地项目建设刷新我国建设大硅片制造项目的最快速度