将旧ElasticSearch的映射移动到最新的ES(5)

时间:2017-01-20 16:38:42

标签: json elasticsearch mapping

我已经继承了某个在某个地方运行的相当旧的(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格式?

1 个答案:

答案 0 :(得分:1)

它失败的原因是因为较旧的ES安装了一个名为mapper-attachments的插件,它会将attachment映射类型添加到ES。

在ES 5中,此插件已替换为ingest-attachment插件,您可以像这样安装:

bin/elasticsearch-plugin install ingest-attachment

在ES_HOME文件夹中运行此命令后,重新启动ES群集,它应该会更好。