橡皮、老虎皮、狮子皮哪一个最不好?

拼音首字母 上海 sh查不出来

Elasticsearch | 作者 lwz | 发布于2020年06月15日 | 阅读数:1326

"analysis": { -
"filter": { -
"my_pinyin": { -
"keep_joined_full_pinyin": "true",
"keep_separate_first_letter": "true",
"none_chinese_pinyin_tokenize": "true",
"type": "pinyin"
}
},
"analyzer": { -
"onlyOne_analyzer": { -
"tokenizer": "onlyOne_pinyin"
},
"ik_pinyin_analyzer": { -
"filter": [ -
"my_pinyin"
],
"type": "custom",
"tokenizer": "standard"
}
},
"tokenizer": { -
"onlyOne_pinyin": { -
"type": "pinyin",
"keep_separate_first_letter": "true",
"keep_full_pinyin": "false"
}
}
}
已邀请:

FFFrp

赞同来自:

keep_separate_first_letter 启用此选项后,将分别保留首字母,刘德华>l,d,h, 默认false  这个设置有问题吧,analyzer API分下看是什么

tulong - 80 IT

赞同来自:

GET /${index}/${type}/${id}/_termvectors?fields=${fields_name} 看下分词结果中有没有词条sh,没有就是mapping设置问题,有的话那就是你查询语句的问题

zakokun - 后端开发

赞同来自:

你这个定义了2个analyzer,那你 上海 这个字段用的是哪个analyzer?
 
如果你用的是onlyOne_pinyin 这个anazyler,那么分出来的就是 s,h,sh 那就肯定能查的到的.
 
如果用的是ik_pinyin_analyzer,那就搜索不到了,因为你把拼音放在filter,而经过standard这个tokenizer会吧上海-> 上, 海 两个单独的汉字,你自然就得不到 sh这样的缩写了

要回复问题请先登录注册