elasticsearch 中文API 更新(五)
2024-09-06 12:03:26
更新API
你能够创建一个UpdateRequest
,然后将其发送给client。
UpdateRequest updateRequest = new UpdateRequest();
updateRequest.index("index");
updateRequest.type("type");
updateRequest.id("1");
updateRequest.doc(jsonBuilder()
.startObject()
.field("gender", "male")
.endObject());
client.update(updateRequest).get();
或者你也可以利用prepareUpdate
方法
1 client.prepareUpdate("ttl", "doc", "1")
2 .setScript("ctx._source.gender = \"male\"" , ScriptService.ScriptType.INLINE)
3 .get();
5 client.prepareUpdate("ttl", "doc", "1")
6 .setDoc(jsonBuilder()
7 .startObject()
8 .field("gender", "male")
9 .endObject())
10 .get();
1-3行用脚本来更新索引,5-10行用doc来更新索引。
当然,java API也支持使用upsert
。如果文档还不存在,会根据upsert
内容创建一个新的索引。
IndexRequest indexRequest = new IndexRequest("index", "type", "1")
.source(jsonBuilder()
.startObject()
.field("name", "Joe Smith")
.field("gender", "male")
.endObject());
UpdateRequest updateRequest = new UpdateRequest("index", "type", "1")
.doc(jsonBuilder()
.startObject()
.field("gender", "male")
.endObject())
.upsert(indexRequest);
client.update(updateRequest).get();
如果文档index/type/1
已经存在,那么在更新操作完成之后,文档为:
{
"name" : "Joe Dalton",
"gender": "male"
}
否则,文档为:
{
"name" : "Joe Smith",
"gender": "male"
}
最新文章
- C#制作、打包、签名、发布Activex全过程
- Eclipse里面Outline中图标的含义
- kali 2016的基础配置
- Codeforces Round #260 (Div. 2) A~C
- Cadence Allegro导网表的错误问题解决
- COJ 2105 submatrix
- Java Web整合开发(20) -- Hibernate入门
- 重点+超详细:ajax和json及案例
- 一款好用的软件easyUI
- JavaScript 函数定义
- 前端 $.parseJson()
- c#简单的数据库查询与绑定DataGridView。
- 初学Python——介绍一些内置方法
- MUI - 复选框、单选框、使用js获取选择值
- C - Little Jumper (三分)
- iOS UI调试神器,插件injection for Xcode使用方法
- Hive Web Interface的安装
- 查询包含指定字段的所有表名的SQL脚本
- Linux查看网卡UUID另一方法
- 基于日志报警插件 elastalert 实现告警
热门文章
- Android开发 AndroidStudio解决Error:moudle not specified
- 在VMware中创建一个新的虚拟机 ,安装Linux4.X系统 ,之后在此基础上安装openfiler(网络存储管理实用程序)
- [JZOJ6344] 【NOIP2019模拟2019.9.7】Huge Counting
- Oracle大数据查询优化
- 「题解」:$e$
- 数论剩余系——cf1089F
- MFC int转CString
- python实现百度OCR图片识别
- kkFileView在centos7上安装
- android—退出应用程序