愚者求师之过,智者从师之长。

es reindex script改字段内容

Elasticsearch | 作者 alphabing | 发布于2017年11月29日 | 阅读数:8880

总说:reindex的时候,改变字段的内容
 
描述:A中数据到B中,A中字段key类型为数字1或者2,B中key类型为字符串MAM或者DD,把A中数据到B中时候怎么1变成MAM,2变成DD呢
实践:
我在reindex中 source、dest中加入如下,然而报错: 
"script": {
"source": "if (ctx._source.from_where == 1) {ctx._source.from_where='MAM'}",
"lang": "painless"
}
错误如下:
{'type': 'illegal_argument_exception', 'reason': '[script] unknown field [source], parser not found'}
现在很头痛,不 知道怎么搞,谁能帮个忙。
完整请求:
    POST _reindex
{
"source": {
......
},
"dest": {
...
},
"script": {
"source": "if (ctx._source.aaa == 1) {ctx._source.aaa='MAM'}",
"lang": "painless"
}
}

ES版本:5.4
已邀请:

rockybean - Elastic Certified Engineer, ElasticStack Fans,公众号:ElasticTalk

赞同来自: alphabing laoyang360

 我测试了下,是可以的,你是怎么调用的?看报错应该是语法错误

白衬衣 - 金桥

赞同来自: alphabing

检查下你的版本和语法是否匹配,es的painless语法,很多版本都是不一样的。

要回复问题请先登录注册