自定义 normalizer ,并且在需要忽略大小写的字段上指定自定义的 normalizer 。
创建索引
curl -XPUT -H "Content-Type: application/json" http://10.0.5.10:9200/account-list-v5?pretty -d '{
"settings": {
"index": {
"mapper": {
"dynamic": "true"
},
"analysis": {
"analyzer": {
"default": {
"type": "ik_max_word"
}
},
"searchAnalyzer": {
"default": {
"type": "ik_max_word"
}
},
"normalizer": {
"my_normalizer": {
"type": "custom",
"char_filter": [],
"filter": ["lowercase", "asciifolding"]
}
}
}
}
},
"mappings": {
"account-list-item": {
"properties": {
"wechatId": {
"type": "keyword",
"normalizer": "my_normalizer"
},
"badge": {
"type": "keyword"
}
}
}
}
}';
重建索引
curl -XPOST -H "Content-Type: application/json" http://10.0.5.10:9200/_reindex?pretty -d '{
"source": {"index": "account-list-v3"},
"dest": {"index": "account-list-v5"}
}';
替换别名
curl -XPOST -H "Content-Type: application/json" http://10.0.5.10:9200/_aliases?pretty -d '{
"actions" : [
{"remove": {"index": "account-list-v4", "alias": "account-list"}},
{"add": {"index": "account-list-v5", "alias": "account-list"}}
]
}';