提问要多花一点心思哦

elasticsearch能否支持中文拼音纠错?

Elasticsearch | 作者 wokeyi | 发布于2017年09月15日 | 阅读数:9478

参考淘宝天猫等一些商城的搜索 发现,一般纠错优先进行拼音的纠错,例如:
搜索“洗以液”或者“洗衣叶”,能够纠错为"洗衣液";

如果是中文的全拼,比较好处理,可以使用拼音分词进行纠错,
但是中文分词,会将“洗以液”分词为“洗”“以”“液”,
所以我采用keyword,不进行分词,在使用termSuggest或者phraseSuggest进行纠错时,
由于我的文档中有5个文档为“洗手液”,3个文档为“洗衣液”,得到的纠错结果为“洗手液”,这样显示不是我们想要的结果,
想咨询一下大牛:
1.是否es支持中文错别字的拼音纠错?
2.另外phraseSuggest的一些高级功能如何使用及使用场景,如Smoothing Models(平滑模型),Candidate Generators(候选器)?
已邀请:

rochy - rochy_he

赞同来自:

你需要建立一个短语索引,这个索引里面都是一些短语;
例如:洗手液,洗衣液,洗衣机,海尔洗衣机,雕牌洗衣液
 
然后对每个短语进行拼音分词,例如 洗衣液 分词为:xiyiye,xiyiy,xiyy,xyy;
此外记录每个短语的频次
 
然后再查询的时候使用拼音进行搜索,配合 fuzzyQuery 和词频即可实现你需要的效果。

要回复问题请先登录注册