elasticsearch拼音搜索高亮显示

es创建索引方案:
1.单个字符拼音匹配
2.ik分词+pinyin filter (搜索匹配度比较高)
3.ngram

问题:第二种方案高亮是整个词组,比如搜“中hua”搜索结果高亮了“花园”
所以对搜索结果中的高亮词进行二次处理,将“花园”按字分割,查看hua是否在“zhong hua”之中,查看yuan是否在"zhong hua"之中。这样就遇到了问题,
搜索“wenjian”匹配到了“文件夹”,jia在拼音之中所以也高亮了“夹”,这样又导致高亮结果不准确。
如果最佳的显示拼音搜索到的高亮尼?需要将搜索关键词的拼音进行可能性分析,比如搜"ganga",这样用户搜索的目的肯能是gan ga 也可能是gang a,
然后将搜索到的高亮拿去匹配,这样就能精确高亮。

难题:如何对一串拼音进行可能性分割?

目前是按最长匹配的方案进行截取分割的,这样就会导致部分高亮不准确

todo

发表新评论