背景:搜索 趙又廷、赵又廷,简体或繁体,都能把库里完整匹配赵又廷的用户搜索出来,但是现在我搜繁体的趙又廷,没有结果,这种情况怎么处理?
PUT user
{
"settings": {
"analysis": {
"char_filter": {
"tsconvert": {
"convert_type": "t2s",
"type": "stconvert",
"keep_both": "true",
"delimiter": "#"
}
},
"analyzer": {
"keywordAnalyzer": {
"type": "custom",
"char_filter": [
"tsconvert"
],
"tokenizer": "keyword"
}
}
}
},
"mappings": {
"doc": {
"properties": {
"name": {
"type": "text",
"analyzer": "keywordAnalyzer"
}
}
}
}
}
看网上有用normalizer的,代码如下,但是会报错,mapping建不成功。PUT user
{
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"type": "custom",
"filter": ["lowercase"],
"char_filter": ["tsconvert"]
}
},
"char_filter": {
"tsconvert": {
"convert_type": "t2s",
"type": "stconvert",
"keep_both": "true",
"delimiter": "#"
}
}
}
},
"mappings": {
"doc": {
"properties": {
"name": {
"type": "keyword",
"normalizer": "my_normalizer"
}
}
}
}
}
报错信息{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Custom normalizer [my_normalizer] may not use char filter [tsconvert]"
}
],
"type": "illegal_argument_exception",
"reason": "Custom normalizer [my_normalizer] may not use char filter [tsconvert]"
},
"status": 400
}
2 个回复
medcl - 今晚打老虎。
赞同来自:
依诺
赞同来自: