es修改doc,附修改语句的构建(objectMapper)
1,准备好es修改语句
{
"doc": {
"sentiment": 0,
"event_category": [
"违约暴雷",
"新品升级",
"投资融资",
"盈利亏损",
"员工相关"
]
}
}
2,如何使用java构建步骤1中的语句
首先,构建如上数据结构的java对象,如下图:
使用JsonObject.put也行,只是没有java对象来的有可读性和扩展性;
其次,使用com.fasterxml.jackson.databind.ObjectMapper将java对象 -> 格式化的json字符串:
按需有如下配置(不仅有这么多配置):
通过ObjectMapper这个对象的writeValueAsString(java对象)方法,即可以返回步骤1中的数据了。
注意:@JsonInclude(JsonInclude.Include.NON_NULL)、@JsonProperty(value = "event_category")都来自于com.fasterxml.jackson
3,使用JestClient执行这个语句
相关代码如下:
JestClient对象.execute(new Update.Builder(步骤1中的语句).index(es索引名称).type(es类型名称).id(es库某个doc的id).build());
获得返回结果JestResult,可以通过JestResult的responseCode或者isSucceeded判断是否修改成功
4,其他
修改es,也可使用java api,如TransportClient,这样都不用构建es语句了;不过TransportClient在高版本中估计不能用了,会有更好的替代品吧,百度搜索