网站建设公司那个好,网站建设供需,专业网站建设怎么样,房地产开发公司招聘岗位问题
最近需要调整ES索引#xff0c;添加1个字段#xff0c;并且#xff0c;对旧文档数据更新新加的字段默认值。
解决思路
通过利用Update mapping API添加1个新字段后#xff0c;然后#xff0c;利用Update By Query API将向旧文档数据添加新加字段默认值。
添加字段…问题
最近需要调整ES索引添加1个字段并且对旧文档数据更新新加的字段默认值。
解决思路
通过利用Update mapping API添加1个新字段后然后利用Update By Query API将向旧文档数据添加新加字段默认值。
添加字段
PUT dev_zyl/_mapping
{properties: {levelScore: { type: double,null_value: 1}}
}这里添加了一个levelScore字段这个字段是double类型默认值为1。
更新旧文档
POST dev_zyl/_update_by_query
{query: {match_all: {}},script: {source: ctx._source[levelScore] 1}
}这是查询出所有文档然后将levelScore字段设置为1。
总结
现在这个时间点ES不能通过在mapping接口添加新字段的时候影响到旧数据。不过单独出一个接口处理旧数据也是很合理的。
参考
Update mapping APIUpdate By Query APINumeric field typesHow to update multiple documents that match a query in elasticsearch