elasticsearch 如何将2个类型合并为1个索引中的1个类型或迁移到具有1个类型的新索引中

uyhoqukh  于 6个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(59)

我的问题:

我有一个ElastichSearch索引。Map如下。
正如你所看到的,我有两个索引类型:TypeA和TypeB具有相同的Map(属性)。
现在我想把它们合并成一种类型,让我们称之为TypeC。
我该怎么做?

{
  "my_index" : {
    "mappings" : {
      "TypeA" : {
        "properties" : {
          "autoid" : {
            "type" : "integer"
          },
          "database" : {
            "type" : "keyword"
          },
          "database_version" : {
            "type" : "keyword"
          },
          "error_message" : {
            "type" : "keyword"
          },
          "failure_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "id_sequence" : {
            "type" : "integer"
          },
          "id_test" : {
            "type" : "integer"
          },
          "operator" : {
            "type" : "keyword"
          },
          "part_number" : {
            "type" : "keyword"
          },
          "read_value" : {
            "type" : "keyword"
          },
          "serial_number" : {
            "type" : "keyword"
          },
          "site" : {
            "type" : "keyword"
          },
          "test_software_version" : {
            "type" : "keyword"
          },
          "test_station" : {
            "type" : "keyword"
          },
          "test_type" : {
            "type" : "keyword"
          },
          "timestamp" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "transaction_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "waited_value" : {
            "type" : "keyword"
          }
        }
      },
      "TypeB" : {
        "properties" : {
          "autoid" : {
            "type" : "integer"
          },
          "database" : {
            "type" : "keyword"
          },
          "database_version" : {
            "type" : "keyword"
          },
          "error_message" : {
            "type" : "keyword"
          },
          "failure_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "id_sequence" : {
            "type" : "integer"
          },
          "id_test" : {
            "type" : "integer"
          },
          "operator" : {
            "type" : "keyword"
          },
          "part_number" : {
            "type" : "keyword"
          },
          "read_value" : {
            "type" : "keyword"
          },
          "serial_number" : {
            "type" : "keyword"
          },
          "site" : {
            "type" : "keyword"
          },
          "test_software_version" : {
            "type" : "keyword"
          },
          "test_station" : {
            "type" : "keyword"
          },
          "test_type" : {
            "type" : "keyword"
          },
          "timestamp" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "transaction_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "waited_value" : {
            "type" : "keyword"
          }
        }
      }
    }
  }
}

字符串
提前感谢您的帮助!
我希望我有一个索引,其中包含前一个索引中的所有数据。Map应该如下所示:

{
  "my_index" : {
    "mappings" : {
      "TypeC" : {
        "properties" : {
          "autoid" : {
            "type" : "integer"
          },
          "database" : {
            "type" : "keyword"
          },
          "database_version" : {
            "type" : "keyword"
          },
          "error_message" : {
            "type" : "keyword"
          },
          "failure_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "id_sequence" : {
            "type" : "integer"
          },
          "id_test" : {
            "type" : "integer"
          },
          "operator" : {
            "type" : "keyword"
          },
          "part_number" : {
            "type" : "keyword"
          },
          "read_value" : {
            "type" : "keyword"
          },
          "serial_number" : {
            "type" : "keyword"
          },
          "site" : {
            "type" : "keyword"
          },
          "test_software_version" : {
            "type" : "keyword"
          },
          "test_station" : {
            "type" : "keyword"
          },
          "test_type" : {
            "type" : "keyword"
          },
          "timestamp" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "transaction_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "waited_value" : {
            "type" : "keyword"
          }
        }
      }
    }
  }
}

rdlzhqv9

rdlzhqv91#

您可以简单地将两个旧索引重新索引到新索引中。首先使用预期的Map创建新的typec(名称必须是x1)索引:

PUT typec
{
    "mappings" : {
      "TypeC" : {
        "properties" : {
          "autoid" : {
            "type" : "integer"
          },
          "database" : {
            "type" : "keyword"
          },
          "database_version" : {
            "type" : "keyword"
          },
          "error_message" : {
            "type" : "keyword"
          },
          "failure_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "id_sequence" : {
            "type" : "integer"
          },
          "id_test" : {
            "type" : "integer"
          },
          "operator" : {
            "type" : "keyword"
          },
          "part_number" : {
            "type" : "keyword"
          },
          "read_value" : {
            "type" : "keyword"
          },
          "serial_number" : {
            "type" : "keyword"
          },
          "site" : {
            "type" : "keyword"
          },
          "test_software_version" : {
            "type" : "keyword"
          },
          "test_station" : {
            "type" : "keyword"
          },
          "test_type" : {
            "type" : "keyword"
          },
          "timestamp" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "transaction_date" : {
            "type" : "date",
            "format" : "yyyy-MM-dd HH:mm:ss.SSSSSS"
          },
          "waited_value" : {
            "type" : "keyword"
          }
        }
      }
    }
  }

字符串
然后将TypeATypeB重新索引为TypeC(也都是x1)

POST _reindex?wait_for_completion=false
{
  "source": {
    "index": "typea,typeb"
  },
  "dest": {
    "index": "typec"
  }
}


此命令将立即返回,并给予一个任务ID,然后您可以将其与以下命令一起使用,以监视重新索引的进度:

GET _tasks/<task_id>

相关问题