ES 修改mapping

elasticsearch 并不支持修改mapping映射字段中的信息,如:字段类型、字段名称、分词器等。

需要先创建一个新的索引(mapping用最新的),复制原索引中的数据,删除旧索引(删除前必须检查原索引中的数据是否全部复制到新索引中),设置别名。具体步骤如下:

步骤1:查看原索引mapping&settings

原索引:mapping&settings

GET rosegal/_mapping
{
    "mappings": {
      "sku": {
        "dynamic": "false",
        "_all": {
          "enabled": false
        },
        "properties": {
          "addTime": {
            "type": "long",
            "fields": {
              "raw": {
                "type": "date",
                "format": "epoch_second"
              }
            }
          },
          "appPrice": {
            "type": "double"
          },
          "attentionNum": {
            "type": "integer"
          },
          "availableStock": {
            "type": "integer"
          },
          "baseField": {
            "type": "nested",
            "properties": {
              "itemNo": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              },
              "name": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              },
              "value": {
                "type": "keyword",
                "copy_to": [
                  "searchWords"
                ]
              }
            }
          },
          "baseScore1": {
            "type": "double"
          },
          "baseScore2": {
            "type": "double"
          },
          "baseScore3": {
            "type": "double"
          },
          "baseScore4": {
            "type": "double"
          },
          "baseScore5": {
            "type": "double"
          },
          "catId": {
            "type": "integer"
          },
          "categories": {
            "type": "nested",
            "properties": {
              "catId": {
                "type": "integer"
              },
              "catName": {
                "type": "text"
              },
              "level": {
                "type": "integer"
              }
            }
          },
          "clickCount": {
            "type": "integer"
          },
          "colorAttr": {
            "type": "text",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "whitespace_analyzer"
              },
              "raw": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              }
            },
            "copy_to": [
              "searchWords"
            ],
			"analyzer": "shingle_analyzer"
          },
          "cxj": {
            "type": "float"
          },
          "day3Sale": {
            "type": "integer"
          },
          "disabledCountryCodes": {
            "type": "text",
            "analyzer": "comma_split_pattern_analyzer"
          },
          "discount": {
            "type": "double"
          },
          "displayPrice": {
            "type": "double"
          },
          "exposureSalesRate": {
            "type": "double",
            "index": false
          },
          "exposureSalesVolume": {
            "type": "double",
            "index": false
          },
          "extCategories": {
            "type": "nested",
            "properties": {
              "catId": {
                "type": "integer"
              },
              "catName": {
                "type": "text"
              },
              "level": {
                "type": "integer"
              }
            }
          },
          "firstOnSaleTime": {
            "type": "long",
            "fields": {
              "raw": {
                "type": "date",
                "format": "epoch_second"
              }
            }
          },
          "goodsBrand": {
            "type": "keyword",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "whitespace_analyzer"
              }
            },
            "copy_to": [
              "searchWords"
            ],
            "normalizer": "lowercase_normal"
          },
          "goodsBrief": {
            "type": "text"
          },
          "goodsId": {
            "type": "keyword",
            "normalizer": "lowercase_normal"
          },
          "goodsImg": {
            "type": "keyword",
            "index": false
          },
          "goodsModel": {
            "type": "text",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "standard"
              }
            },
            "copy_to": [
              "searchWords"
            ],
            "analyzer": "shingle_analyzer"
          },
          "goodsNumber": {
            "type": "integer"
          },
          "goodsSearchAttr": {
            "type": "text"
          },
          "goodsSn": {
            "type": "keyword",
            "normalizer": "lowercase_normal"
          },
          "goodsTitle": {
            "type": "text",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "whitespace_analyzer"
              }
            },
            "copy_to": [
              "searchWords",
              "seoSearchWords"
            ],
            "analyzer": "shingle_analyzer"
          },
          "grids": {
            "type": "keyword"
          },
          "groupColorGoodsId": {
            "type": "integer"
          },
          "hasModel": {
            "type": "integer"
          },
          "hotOrder": {
            "type": "keyword"
          },
          "imgType": {
            "type": "integer"
          },
          "integral": {
            "type": "integer"
          },
          "is24hShip": {
            "type": "integer"
          },
          "isBf": {
            "type": "integer"
          },
          "isBlacklistApp": {
            "type": "integer"
          },
          "isDeals": {
            "type": "integer"
          },
          "isDistribution": {
            "type": "integer"
          },
          "isFreeShipping": {
            "type": "integer"
          },
          "isLogin": {
            "type": "integer"
          },
          "isNewPromote": {
            "type": "integer"
          },
          "isOnSaleApp": {
            "type": "integer"
          },
          "isOnSaleSites": {
            "type": "integer"
          },
          "isPromote": {
            "type": "integer"
          },
          "isSampleMaking": {
            "type": "integer"
          },
          "labelCode": {
            "type": "keyword",
            "normalizer": "lowercase_normal"
          },
          "labelIds": {
            "type": "integer"
          },
          "lastReview": {
            "type": "text"
          },
          "lastUpdateTime": {
            "type": "long",
            "fields": {
              "raw": {
                "type": "date",
                "format": "epoch_second"
              }
            }
          },
          "marketPrice": {
            "type": "double"
          },
          "newGoodsWeight": {
            "type": "long"
          },
          "onSaleTime": {
            "type": "long"
          },
          "overallRate": {
            "type": "float"
          },
          "passAvgScore": {
            "type": "float"
          },
          "phoneAttrTable": {
            "type": "text"
          },
          "priceType": {
            "type": "integer"
          },
          "promoteEndDate": {
            "type": "integer"
          },
          "promotePrice": {
            "type": "double"
          },
          "promoteStartDate": {
            "type": "integer"
          },
          "pythonId": {
            "type": "integer"
          },
          "ratio": {
            "type": "integer"
          },
          "realSaleNumber": {
            "type": "integer"
          },
          "realTimeNumber": {
            "type": "integer"
          },
          "recommendation": {
            "type": "double"
          },
          "recommendedLevel": {
            "type": "integer"
          },
          "sameAvgRate": {
            "type": "integer"
          },
          "sameReviewCount": {
            "type": "integer"
          },
          "searchWords": {
            "type": "text",
            "analyzer": "shingle_analyzer"
          },
          "seoAttrTitle": {
            "type": "text",
            "copy_to": [
              "seoSearchWords"
            ],
            "analyzer": "shingle_analyzer"
          },
          "seoSearchWords": {
            "type": "text",
            "analyzer": "shingle_analyzer"
          },
          "shelfDownType": {
            "type": "integer"
          },
          "shopPrice": {
            "type": "double"
          },
          "show": {
            "type": "integer"
          },
          "sizeAttr": {
            "type": "text",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "whitespace_analyzer"
              },
              "raw": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              }
            },
			"analyzer": "shingle_analyzer"
          },
          "skuAttrs": {
            "type": "nested",
            "properties": {
              "attrName": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              },
              "attrValue": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              },
              "templateId": {
                "type": "integer"
              }
            },
			"analyzer": "shingle_analyzer"
          },
          "skuId": {
            "type": "integer"
          },
          "sortOrder": {
            "type": "integer"
          },
          "stockFlag": {
            "type": "integer"
          },
          "unsalable": {
            "type": "integer"
          },
          "urlTitle": {
            "type": "text"
          },
          "week1SaleSpu": {
            "type": "integer"
          },
          "week1Sales": {
            "type": "integer"
          },
          "week1SalesVolume": {
            "type": "double"
          },
          "week2SaleSpu": {
            "type": "integer"
          },
          "week2Sales": {
            "type": "integer"
          },
          "week2SalesVolume": {
            "type": "double"
          },
          "whCode": {
            "type": "keyword",
            "normalizer": "lowercase_normal"
          },
          "whiteList": {
            "type": "integer"
          }
        }
      }
    }
}
GET rosegal/_settings
{
    "settings": {
      "index": {
        "search": {
          "slowlog": {
            "threshold": {
              "fetch": {
                "warn": "200ms"
              },
              "query": {
                "warn": "200ms"
              }
            }
          }
        },
        "number_of_shards": "5",
        "provided_name": "rosegal20210305102833",
        "max_result_window": "100000",
        "creation_date": "1614911313521",
        "analysis": {
          "filter": {
            "shingle": {
              "max_shingle_size": "2",
              "min_shingle_size": "2",
              "output_unigrams": "true",
              "type": "shingle",
              "filler_token": ""
            },
            "synonym": {
              "expand": "false",
              "interval": "3600",
              "type": "dynamic_synonym",
              "synonyms_path": "http://10.4.4.83:8082/api/rosegal/biz/synonym/en"
            },
            "stop_world": {
              "type": "stop",
              "stopwords": [
                "a",
                "and",
                "for",
                "in",
                "of",
                "on",
                "to",
                "with",
                "at",
                "but",
                "by",
                "if",
                "into",
                "is"
              ]
            },
            "custom_stems": {
              "type": "stemmer_override",
              "rules": [
                "legging => legging",
                "leggings => legging"
              ]
            },
            "word_delimiter": {
              "split_on_numerics": "false",
              "split_on_case_change": "false",
              "generate_word_parts": "false",
              "type": "word_delimiter"
            }
          },
          "char_filter": {
            "special_char_replace_filter": {
              "pattern": "_",
              "type": "pattern_replace",
              "replacement": " "
            },
            "whitespace_replace_filter": {
              "pattern": " ",
              "type": "pattern_replace",
              "replacement": ""
            }
          },
          "normalizer": {
            "lowercase_normal": {
              "filter": [
                "lowercase"
              ],
              "type": "custom"
            }
          },
          "analyzer": {
            "whitespace_analyzer": {
              "filter": [
                "lowercase"
              ],
              "type": "custom",
              "tokenizer": "whitespace"
            },
            "default": {
              "filter": [
                "standard",
                "lowercase",
                "word_delimiter",
                "stop_world",
                "porter_stem",
                "synonym",
                "trim",
                "custom_stems"
              ],
              "char_filter": [
                "special_char_replace_filter"
              ],
              "tokenizer": "standard"
            },
            "keyword_analyzer": {
              "filter": [
                "lowercase"
              ],
              "type": "custom",
              "tokenizer": "keyword"
            },
            "shingle_analyzer": {
              "filter": [
                "standard",
                "lowercase",
                "word_delimiter",
                "stop_world",
                "porter_stem",
                "synonym",
                "shingle",
                "trim",
                "custom_stems"
              ],
              "char_filter": [
                "special_char_replace_filter"
              ],
              "type": "custom",
              "tokenizer": "standard"
            },
            "comma_split_pattern_analyzer": {
              "pattern": ",",
              "type": "pattern"
            }
          }
        },
        "number_of_replicas": "1",
        "uuid": "cps95KqoS_2nZzrTC1iGUg",
        "version": {
          "created": "5060499"
        }
      }
    }
}

步骤2:新建索引

PUT rosegal_new
{
    "settings": {
      "index": {
        "search": {
          "slowlog": {
            "threshold": {
              "fetch": {
                "warn": "200ms"
              },
              "query": {
                "warn": "200ms"
              }
            }
          }
        },
        "number_of_shards": "5",
        "max_result_window": "100000",
        "analysis": {
          "filter": {
            "shingle": {
              "max_shingle_size": "2",
              "min_shingle_size": "2",
              "output_unigrams": "true",
              "type": "shingle",
              "filler_token": ""
            },
            "synonym": {
              "expand": "false",
              "interval": "3600",
              "type": "dynamic_synonym",
              "synonyms_path": "http://10.4.4.83:8082/api/rosegal/biz/synonym/en"
            },
            "stop_world": {
              "type": "stop",
              "stopwords": [
                "a",
                "and",
                "for",
                "in",
                "of",
                "on",
                "to",
                "with",
                "at",
                "but",
                "by",
                "if",
                "into",
                "is"
              ]
            },
            "custom_stems": {
              "type": "stemmer_override",
              "rules": [
                "legging => legging",
                "leggings => legging"
              ]
            },
            "word_delimiter": {
              "split_on_numerics": "false",
              "split_on_case_change": "false",
              "generate_word_parts": "false",
              "type": "word_delimiter"
            }
          },
          "char_filter": {
            "special_char_replace_filter": {
              "pattern": "_",
              "type": "pattern_replace",
              "replacement": " "
            },
            "whitespace_replace_filter": {
              "pattern": " ",
              "type": "pattern_replace",
              "replacement": ""
            }
          },
          "normalizer": {
            "lowercase_normal": {
              "filter": [
                "lowercase"
              ],
              "type": "custom"
            }
          },
          "analyzer": {
            "whitespace_analyzer": {
              "filter": [
                "lowercase"
              ],
              "type": "custom",
              "tokenizer": "whitespace"
            },
            "default": {
              "filter": [
                "standard",
                "lowercase",
                "word_delimiter",
                "stop_world",
                "porter_stem",
                "synonym",
                "trim",
                "custom_stems"
              ],
              "char_filter": [
                "special_char_replace_filter"
              ],
              "tokenizer": "standard"
            },
            "keyword_analyzer": {
              "filter": [
                "lowercase"
              ],
              "type": "custom",
              "tokenizer": "keyword"
            },
            "shingle_analyzer": {
              "filter": [
                "standard",
                "lowercase",
                "word_delimiter",
                "stop_world",
                "porter_stem",
                "synonym",
                "shingle",
                "trim",
                "custom_stems"
              ],
              "char_filter": [
                "special_char_replace_filter"
              ],
              "type": "custom",
              "tokenizer": "standard"
            },
            "comma_split_pattern_analyzer": {
              "pattern": ",",
              "type": "pattern"
            }
          }
        },
        "number_of_replicas": "1"
      }
    },
    "mappings": {
      "sku": {
        "dynamic": "false",
        "_all": {
          "enabled": false
        },
        "properties": {
          "addTime": {
            "type": "long",
            "fields": {
              "raw": {
                "type": "date",
                "format": "epoch_second"
              }
            }
          },
          "appPrice": {
            "type": "double"
          },
          "attentionNum": {
            "type": "integer"
          },
          "availableStock": {
            "type": "integer"
          },
          "baseField": {
            "type": "nested",
            "properties": {
              "itemNo": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              },
              "name": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              },
              "value": {
                "type": "keyword",
                "copy_to": [
                  "searchWords"
                ]
              }
            }
          },
          "baseScore1": {
            "type": "double"
          },
          "baseScore2": {
            "type": "double"
          },
          "baseScore3": {
            "type": "double"
          },
          "baseScore4": {
            "type": "double"
          },
          "baseScore5": {
            "type": "double"
          },
          "catId": {
            "type": "integer"
          },
          "categories": {
            "type": "nested",
            "properties": {
              "catId": {
                "type": "integer"
              },
              "catName": {
                "type": "text"
              },
              "level": {
                "type": "integer"
              }
            }
          },
          "clickCount": {
            "type": "integer"
          },
          "colorAttr": {
            "type": "text",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "whitespace_analyzer"
              },
              "raw": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              }
            },
            "copy_to": [
              "searchWords"
            ],
			"analyzer": "shingle_analyzer"
          },
          "cxj": {
            "type": "float"
          },
          "day3Sale": {
            "type": "integer"
          },
          "disabledCountryCodes": {
            "type": "text",
            "analyzer": "comma_split_pattern_analyzer"
          },
          "discount": {
            "type": "double"
          },
          "displayPrice": {
            "type": "double"
          },
          "exposureSalesRate": {
            "type": "double",
            "index": false
          },
          "exposureSalesVolume": {
            "type": "double",
            "index": false
          },
          "extCategories": {
            "type": "nested",
            "properties": {
              "catId": {
                "type": "integer"
              },
              "catName": {
                "type": "text"
              },
              "level": {
                "type": "integer"
              }
            }
          },
          "firstOnSaleTime": {
            "type": "long",
            "fields": {
              "raw": {
                "type": "date",
                "format": "epoch_second"
              }
            }
          },
          "goodsBrand": {
            "type": "keyword",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "whitespace_analyzer"
              }
            },
            "copy_to": [
              "searchWords"
            ],
            "normalizer": "lowercase_normal"
          },
          "goodsBrief": {
            "type": "text"
          },
          "goodsId": {
            "type": "keyword",
            "normalizer": "lowercase_normal"
          },
          "goodsImg": {
            "type": "keyword",
            "index": false
          },
          "goodsModel": {
            "type": "text",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "standard"
              }
            },
            "copy_to": [
              "searchWords"
            ],
            "analyzer": "shingle_analyzer"
          },
          "goodsNumber": {
            "type": "integer"
          },
          "goodsSearchAttr": {
            "type": "text"
          },
          "goodsSn": {
            "type": "keyword",
            "normalizer": "lowercase_normal"
          },
          "goodsTitle": {
            "type": "text",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "whitespace_analyzer"
              }
            },
            "copy_to": [
              "searchWords",
              "seoSearchWords"
            ],
            "analyzer": "shingle_analyzer"
          },
          "grids": {
            "type": "keyword"
          },
          "groupColorGoodsId": {
            "type": "integer"
          },
          "hasModel": {
            "type": "integer"
          },
          "hotOrder": {
            "type": "keyword"
          },
          "imgType": {
            "type": "integer"
          },
          "integral": {
            "type": "integer"
          },
          "is24hShip": {
            "type": "integer"
          },
          "isBf": {
            "type": "integer"
          },
          "isBlacklistApp": {
            "type": "integer"
          },
          "isDeals": {
            "type": "integer"
          },
          "isDistribution": {
            "type": "integer"
          },
          "isFreeShipping": {
            "type": "integer"
          },
          "isLogin": {
            "type": "integer"
          },
          "isNewPromote": {
            "type": "integer"
          },
          "isOnSaleApp": {
            "type": "integer"
          },
          "isOnSaleSites": {
            "type": "integer"
          },
          "isPromote": {
            "type": "integer"
          },
          "isSampleMaking": {
            "type": "integer"
          },
          "labelCode": {
            "type": "keyword",
            "normalizer": "lowercase_normal"
          },
          "labelIds": {
            "type": "integer"
          },
          "lastReview": {
            "type": "text"
          },
          "lastUpdateTime": {
            "type": "long",
            "fields": {
              "raw": {
                "type": "date",
                "format": "epoch_second"
              }
            }
          },
          "marketPrice": {
            "type": "double"
          },
          "newGoodsWeight": {
            "type": "long"
          },
          "onSaleTime": {
            "type": "long"
          },
          "overallRate": {
            "type": "float"
          },
          "passAvgScore": {
            "type": "float"
          },
          "phoneAttrTable": {
            "type": "text"
          },
          "priceType": {
            "type": "integer"
          },
          "promoteEndDate": {
            "type": "integer"
          },
          "promotePrice": {
            "type": "double"
          },
          "promoteStartDate": {
            "type": "integer"
          },
          "pythonId": {
            "type": "integer"
          },
          "ratio": {
            "type": "integer"
          },
          "realSaleNumber": {
            "type": "integer"
          },
          "realTimeNumber": {
            "type": "integer"
          },
          "recommendation": {
            "type": "double"
          },
          "recommendedLevel": {
            "type": "integer"
          },
          "sameAvgRate": {
            "type": "integer"
          },
          "sameReviewCount": {
            "type": "integer"
          },
          "searchWords": {
            "type": "text",
            "analyzer": "shingle_analyzer"
          },
          "seoAttrTitle": {
            "type": "text",
            "copy_to": [
              "seoSearchWords"
            ],
            "analyzer": "shingle_analyzer"
          },
          "seoSearchWords": {
            "type": "text",
            "analyzer": "shingle_analyzer"
          },
          "shelfDownType": {
            "type": "integer"
          },
          "shopPrice": {
            "type": "double"
          },
          "show": {
            "type": "integer"
          },
          "sizeAttr": {
            "type": "text",
            "fields": {
              "correctionRaw": {
                "type": "text",
                "analyzer": "whitespace_analyzer"
              },
              "raw": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              }
            },
			"analyzer": "shingle_analyzer"
          },
          "skuAttrs": {
            "type": "nested",
            "properties": {
              "attrName": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              },
              "attrValue": {
                "type": "keyword",
                "normalizer": "lowercase_normal"
              },
              "templateId": {
                "type": "integer"
              }
            }
          },
          "skuId": {
            "type": "integer"
          },
          "sortOrder": {
            "type": "integer"
          },
          "stockFlag": {
            "type": "integer"
          },
          "unsalable": {
            "type": "integer"
          },
          "urlTitle": {
            "type": "text"
          },
          "week1SaleSpu": {
            "type": "integer"
          },
          "week1Sales": {
            "type": "integer"
          },
          "week1SalesVolume": {
            "type": "double"
          },
          "week2SaleSpu": {
            "type": "integer"
          },
          "week2Sales": {
            "type": "integer"
          },
          "week2SalesVolume": {
            "type": "double"
          },
          "whCode": {
            "type": "keyword",
            "normalizer": "lowercase_normal"
          },
          "whiteList": {
            "type": "integer"
          }
        }
      }
    }
}

步骤3:同步数据

POST _reindex                   
{
  "source": {
    "index": "rosegal"
  },
  "dest": {
    "index": "rosegal_new"
  }
}

步骤4:删除原索引(注意必须等数据同步完后才能删除)

DELETE rosegal

步骤5:设置别名

POST /_aliases
{
    "actions": [
        {"add": {"index": "rosegal_new", "alias": "rosegal"}}
    ]
}

 

你可能感兴趣的:(elasticsearch)