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在高版本中估计不能用了,会有更好的替代品吧,百度搜索

 

 

posted @ 2020-06-03 15:54  seeAll  阅读(878)  评论(0编辑  收藏  举报