摘要
输入提示、纠错、关联推荐、拼音到汉字。依托构建索引阶段的全覆盖词条,查询阶段的空格分词、前缀匹配
优化schema配置,可以优化索引体积,提升资源利用率
独立化提示索引结构,使得提示的排序可以灵活制定
需求描述
输入汉字的拼音,简拼、全拼、缩写等提示搜索汉字 输入汉字前缀,提示相关汉字 输入繁体或者繁体前缀,提示相关汉字 输入汉字,提示相关汉字 提示内容的二次推荐 参考链接http://fuwu.taobao.com
实现方案
前端
ajax 异步请求。对输入事件补货并且发起异步请求,要求后端返回速度快。
后端
独立solrcore 管理具体业务场景下的,提示内容、提示排序规则、提示内容更新、屏蔽、降权、加权等。
采取solr来实现,主要是配置solr 的 schema.xml 文件,其中对数据类型的定义最为关键。
默认solr 自带的spellcheck对排序的多样性有不足。
另外,独立部署可以灵活扩展关联输入提示的其他业务逻辑。
配置样例
缺点
走ICU 对多音字支持不是特别友好
配置几点说明:words 不索引,只存储,simwords、pinwords 只索引不存储;
构建索引全覆盖,包括拼音、汉字啥的,但是,查询按空格分词
查询查询: simwords、pinwords 都查,返回words,排序呢 跟进具体场景确定。