Elasticsearch 管理文档
2015-11-13 23:31
232 查看
索引/替换文档
之前已经试过如何索引一个文档了,这里再复习一下:curl -XPUT 'localhost:9200/customer/external/1?pretty' -d ' { "name": "John Doe" }'
上面的例子中,创建了一个索引为customer,类型为external,id为1的文档。
当再次执行命令:
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d ' { "name": "Jane Doe" }'
之前的第一个文档就被覆盖掉了。
如果指定新的文档id,那么旧的文档仍然存在:
curl -XPUT 'localhost:9200/customer/external/2?pretty' -d ' { "name": "Jane Doe" }'
索引的时候ID是可选的,如果不指定ID,ES会随机生成一个ID,并使用这个ID索引文档数据。
curl -XPOST 'localhost:9200/customer/external?pretty' -d ' { "name": "Jane Doe" }'
需要注意的是,如果不指定ID,那么需要使用POST命令,而不是PUT。
更新文档
除了索引和替换文档,ES还支持更新文档。更新文档其实是先删除旧的文档,再索引新的文档。如果想要更新文档内容,可以按照下面的方式进行:
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d ' { "doc": { "name": "Jane Doe" } }'
由于是先删除再索引,因此可以额外增加新的字段:
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d ' { "doc": { "name": "Jane Doe", "age": 20 } }'
当然也支持使用脚本进行更新:
curl -XPOS T 'localhost:9200/customer/external/1/_update?pretty' -d ' { "script" : "ctx._source.age += 5" }'
其中ctx._source代表了当前的文档,上面的意思 是 在当前文档的基础上age加5.
删除文档
删除文档就很简单了,只需要指定文档的索引、类型、ID就行了:curl -XDELETE 'localhost:9200/customer/external/2?pretty'
批量操作
除了索引、替换、更新和删除,ES为了减少来回的响应信息,可以一次性执行多个命令,最后统一返回执行结果。例如:
curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d ' {"index":{"_id":"1"}} {"name": "John Doe" } {"index":{"_id":"2"}} {"name": "Jane Doe" } '
上面的命令可以同时插入两条数据。
_bulk命令不仅仅支持单个命令执行多条,还只是多种不同的命令执行多条。
curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d ' {"update":{"_id":"1"}} {"doc": { "name": "John Doe becomes Jane Doe" } } {"delete":{"_id":"2"}} '
上面的命令中,先更新id为1的文档,再删除id为2的文档。
如果bulk中的某一个命令执行出错,那么会继续执行后面的命令,最后在命令返回时,会返回每个命令的执行结果。
相关文章推荐
- Win10应用加载失败问题的解决方法
- python 学习笔记1--TCP客户端
- 杭电ACM2550——百步穿杨
- Linux中的账号管理
- 个人阅读作业Week7
- java课堂回答
- JAVA+PHP+阿里云组件纯手工实现POP、SMTP、IMAP开发邮件服务器(一)
- MyBatis3搭配MySQL数据库开发时中文乱码问题解决
- This的基本用法
- runtime
- Nginx之location 匹配规则详解
- 杭电ACM2719——The Seven Percent Solution
- 适配器模式
- 看天猫EDM营销学企业EDM营销
- sql server 2008 操作数据表
- 黑马程序员_JavaSE基础知识总结十:异常处理
- iOS跳转界面时隐藏tabBar的方法
- 深入分析java Web技术内幕
- 项目冲刺第八天
- Hibernate中的Criteria