踩坑场景:
ES新增一条记录,log字段为空---->调取接口获得log日志------>修改刚才新加的记录, 将log日志查到该记录的log字段中。
代码类似如下
//ElasticSearch新增一条记录
User u = new User();//User有个log属性
u.setName("zhangsan");
u.setAge(18);
ElasticsearchUtil.addData(u);
。
。
//调接口获得log值,set到user中
String result = schemeHttpClient.sendHttpPostJson(url, jsonObject.toJSONString());
u.setLog(result );
。
。
//在ElasticSearch中更新user
ElasticsearchUtil.update(u);
题外话,与本次踩坑无关:ES的update操作,并不是在原来的数据上做修改的,而是找到该数据的索引Id,把原来的数据删掉,再重新插入一条,索引id是相同的。
自己测试的时候发现,log时而能更新进来,时而更新不进来。
所以自己先对代码做了修改
修改如下
//ElasticSearch新增一条记录
User u = new User();//User有个log属性
u.setName("zhangsan");
u.setAge(18);
ElasticsearchUtil.addData(u);
。
。
//先睡一会
Thread.sleep(1000);
//调接口获得log值,set到user中
String result = schemeHttpClient.se