我有一个带有此映射的索引:
curl -XPUT 'http://localhost:9200/origindex/_mapping/page' -d '
{
"page" : {
"properties" : {
"title" : {"type" : "text"},
"body" : {"type" : "text"},
"other": {"type": "text"}
}
}
}'
在新索引中,我想复制" title" to" title1" " title2"和" body"到" body1"和" body2" (无视"其他"),并从"页面"更改类型; to" articles_eng"。新索引具有以下映射:
curl -XPUT 'http://localhost:9200/newindex/_mapping/articles_eng' -d '
{
"articles_eng" : {
"properties" : {
"title1" : {
"type" : "text",
"analyzer" : "my_analyzer1"
},
"title2" : {
"type" : "text",
"analyzer": "my_analyzer2"
},
"body1": {
"type" : "text",
"analyzer": "my_analyzer1"
},
"body2" : {
"type" : "text",
"analyzer": "my_analyzer2"
}
}
}
}'
通过查看this answer和Elasticsearch reindex docs,我想出了类似的内容:
curl -XPOST http://localhost:9200/_reindex -d '{
"source": {
"index": "origindex",
"type": "page",
"query": {
"match_all": {}
},
"_source": [ "title", "body" ]
},
"dest": {
"index": "newindex"
},
"script": {
"inline": "ctx._type = \"articles_eng\"";
"ctx._title1 = ctx._source._title";
"ctx._title2 = ctx._source._title";
"ctx._body1 = ctx._source._body";
"ctx._body2 = ctx._source._body"
}
}'
我遇到了脚本行的问题。如果我只做顶行(更改文档类型),一切正常。如果我添加其余的行,我会收到错误
由引起的" [reindex]无法解析字段[script]"
"意外的角色(&#39 ;;'(代码59)):期待逗号分开 对象条目\ n在[来源: org.elasticsearch.transport.netty4.ByteBufStreamInput@37649463;线: 14,专栏:50]"
即使我可以使用多个语句解决问题,只需输入第二行就会出现错误
"无效字段已添加到上下文[title1]"}]
任何人都可以帮助我吗?这似乎不可能做到。