搜索下拉框提示与热点词收集

一期考虑交付压力与词汇量可采用数据库解决方案,当数据库记录达到千万可采用其他技术方案。引入redis提高数据访问的性能
 

搜索下拉框提示

所需技术

ajax,servlet,spring,mybatis,pinyin4j

DB:ID,KEYWORLD,PINYIN,COUNT

autocompelete Jquery 有这个插件~

也应该根据一定规则进行分类存储以缩短hit命中时间 比如首字母或者首汉字
 

当输入bu 步则匹配 步步惊心,结果排序为汉字首字匹配靠前,点击数大靠前,然后是拼音匹配。

1)加入myBatis缓存机制;
2)引入连接池改善数据库的开关消耗;
3)限定前台触发的字符长度,比如限定5个字符或者两个汉字以上才触发.

热点词收集共用此库当KEYWORLD字段不存在记录入库,存在则计数。

 

 

下拉框提示应该是前缀匹配的吧,如果到数据库中查询,查询效率必然很低,如果每次提示的请求都是直接去数据库拿结果,效率更加低,数据库负载很大。

收集用户的热门词汇,采用搜索引擎框架(lucene)建立关键词索引(同时建立拼音,全拼),每次请求过来的时候,先从公共缓存服务器拿数据,有缓存就直接返回,没有结果从搜索引擎中采用前缀匹配返回部分结果。实测在pv达到100w的情况下,平均响应时间在5ms以下

 

或者用term tree

你可能感兴趣的:(数据库,汉字,记录)