我已经继承了某个在某个地方运行的相当旧的(v2.something)ElasticSearch实例,需要从映射到最新ES(v5)的本地实例开始获取数据。不幸的是,它失败并出现以下错误:
% curl -X PUT 'http://127.0.0.1:9200/easysearch?pretty=true' --data @easysearch_mapping.json
{
"error" : {
"root_cause" : [
{
"type" : "illegal_argument_exception",
"reason" : "unknown setting [index.easysearch.mappings.espdf.properties.abstract.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"
}
],
"type" : "illegal_argument_exception",
"reason" : "unknown setting [index.easysearch.mappings.espdf.properties.abstract.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"
},
"status" : 400
}
我从旧实例获得的映射包含一些此类字段:
"espdf" : {
"properties" : {
"abstract" : {
"type" : "string"
},
"document" : {
"type" : "attachment",
"fields" : {
"content" : {
"type" : "string"
},
"author" : {
"type" : "string"
},
"title" : {
"type" : "string"
},
这" espdf"事情可能来自Meteor" EasySearch"组件,但我在映射中有更多这样的结构,新的ES拒绝每一个(我尝试编辑映射并删除" espdf"键和值)。
如何让新ES接受映射?这是2.x ES中的一些遗留问题吗?我应该以某种方式将其转换为新的5.x ES格式?
答案 0 :(得分:1)
它失败的原因是因为较旧的ES安装了一个名为mapper-attachments的插件,它会将attachment
映射类型添加到ES。
在ES 5中,此插件已替换为ingest-attachment插件,您可以像这样安装:
bin/elasticsearch-plugin install ingest-attachment
在ES_HOME文件夹中运行此命令后,重新启动ES群集,它应该会更好。