微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

Elasticsearch修改字段类型

elasticsearch aide_941 8℃

1.设置索引t2为想要的数据类型

2.将t1 reindex到t2

3.数据reindex完成删除t1

4.设置索引t1为想要的数据类型

5.将t2 reindex到t1

PUT t1
{
     "settings": {
      "index": {
        "number_of_shards": "2",
        "analysis": {
          "analyzer": {
            "ik_custom_analyzer": {
              "filter": [
                "lowercase"
              ],
              "type": "custom",
              "tokenizer": "ik_max_word"
            }
          }
        },
        "number_of_replicas": "1"
      }
    },
    "mappings": {
      "doc": {
        "properties": {
          "abs_path": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "comp_id": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "id": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "id_path": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "index_update_time": {
            "type": "long"
          },
          "name": {
            "type": "text",
            "analyzer": "ik_custom_analyzer"
          },
          "parent_id": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "star": {
            "type": "long"
          },
          "time": {
            "type": "long"
          },
          "weight": {
            "type": "long"
          }
        }
      }
    }  
}

PUT /t2
{

    "settings": {
        "number_of_shards": 2,
        "number_of_replicas": 1,
        "analysis": {
            "analyzer": {
                "simplechar_index_analyzer": {
                    "type": "custom",
                    "tokenizer": "simplechar_index"
                },
                "simplechar_search_analyzer": {
                    "type": "custom",
                    "tokenizer": "simplechar_search"
                },
                "pinyin_index_analyzer": {
                    "type": "custom",
                    "tokenizer": "pinyin_index"
                },
                "pinyin_search_analyzer": {
                    "type": "custom",
                    "tokenizer": "pinyin_search"
                }
            },
            "tokenizer": {
                "simplechar_index": {
                    "type": "simplechar_and_pinyin",
                    "simple_char": true,
                    "prefix_en": true,
                    "prefix_num": true
                },
                "simplechar_search": {
                    "type": "simplechar_and_pinyin",
                    "simple_char": true,
                    "prefix_num": true,
                    "prefix_en": true
                },
                "pinyin_index": {
                    "type": "simplechar_and_pinyin",
                    "simple_char": true,
                    "han_to_pinyin": true,
                    "keep_first": true,
                    "keep_fuzzy": true,
                    "simple_num": true
                },
                "pinyin_search": {
                    "type": "simplechar_and_pinyin",
                    "simple_char": true,
                    "en_to_pinyin": true,
                    "simple_num": true
                }
            }
        }
    },
    "mappings": {
        "doc": {
            "properties": {
                "name": {
                    "type": "text",
                    "analyzer": "simplechar_index_analyzer",
                    "search_analyzer": "simplechar_search_analyzer",
                    "similarity": "boolean",
                    "fielddata": true,
                    "fields": {
                        "pinyin": {
                            "type": "text",
                            "similarity": "boolean",
                            "analyzer": "pinyin_index_analyzer",
                            "search_analyzer": "pinyin_search_analyzer",
                            "fielddata": true
                        }
                    }
                }
            }
        }
    }
}

PUT t1/doc/3
{
          "id": "3",
          "name": "第七层",
          "star": 0,
          "parent_id": "134111385604698112",
          "comp_id": "500000151",
          "abs_path": "啤啤第三个公司/这个是子部门1/这个是部门下的部门/再加/第五层/第六层/第七层",
          "id_path": "131773053453164544,131775211384823808,131775319170052096,132666474766233600,134111338699763712,134111385604698112,134112080391122944",
          "weight": "2",
          "index_update_time": 1547469387,
          "time": 1547469386994201600
}

GET t1/doc/_search
{
  "size": 20,
  "query": {
    "match_all": {}
  }
}

POST _reindex
{
  "source": {
    "index": "t1"
  },
  "dest": {
    "index": "t2",
    "version_type": "external"
  },
  "script": {
    "source":"def w = ctx._source.remove('weight');ctx._source.weight=w;",
    "lang": "painless"
  }
}
GET t1/_mapping
GET t2/_mapping

GET t2/doc/_search
{
  "size": 20,
  "query": {
    "match_all": {}
  }
}

转载请注明:SuperIT » Elasticsearch修改字段类型

喜欢 (0)or分享 (0)