点击空白处退出提示
作品详情
解决思路:搭建服务端,通过服务端发送用户的关键词进行关键词联想搜索.将联想词推送给客户端,当用户输入完搜索词后,在服务端查询本地数据内容,进行余弦相似度计算排序,最终将排序结果推送给客户端展示给用户。
技术要点:Reactor,线程池,偏移库,索引库,倒排索引库,词典库,simhash,TF-IDF,最小编辑距离,余弦相似度,LRU,JSON,redis,多线程缓存系统,内核定时器,线程局部存储,日志系统,单例配置类,MySQL存储转移,性能分析火焰图
开发平台:C++11,g++ 7.5.0,ubuntu18.04,MySQL 8.0.33,perf,FlameGraph
工作职责:
1.基于Reactor模型,实现高性能高并发的服务端。
2.将词典库,网页库,偏移库,索引库,倒排索引库,进行数据库表设计,设计成网页库表,单词权重表,中英文词典库,中英文索引库。
3.利用最小编辑距离算法,对用户输入的检索词进行解析,求出编辑距离最小的联想词发给用户,实现关键词联想。
4.利用余弦相似度算法,解析用户检索词,利用余弦相似度算法对网页排序,将每篇网页摘要信息发给用户。
5.在服务端将查询结果以list数据类型存入redis,优化关键词查询效率。
6.利用LRU算法和线程局部存储机制,为工作线程分配两级 LRU Cache 作为网页检索模块的缓存系统,并使用内核定时器 timerfd 实现 Cache 数据的更新、同步和持久化。
7.利用perf测试程序性能,利用FlameGrap对perf.data数据生成火焰图。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论