项目总结|青训营笔记

185 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第5篇笔记

本文主要是对青训营进阶班后端大项目搜索引擎项目的整体总结

项目是一个Golang实现的全文检索引擎,支持纯文本信息的搜索、输入文本搜索图片、自定义关键词过滤、搜索热词、搜索历史、结果分页等功能

项目技术栈

项目采取了多种方法来保证系统良好性能,其中包括

  1. 数据的分片存储来保证高吞吐
  2. 使用磁盘和内存缓存进行索引
  3. gzip做中间件压缩
  4. 主要技术点:倒排索引、正排索引、文件分片、高并发查询

接口设计

接口定义接口名称接口说明
/query查询接口用于基本的查询,指定数据库可以指定查询的方式(网页,图片)
/reminder搜索提示根据历史记录和用户输入返回建议搜索内容
/trend搜索热词返回搜索热度最高的搜索词,数量在config中修改
/pageDetail网页详情返回网页的摘要信息,该接口主要是为了解决爬虫时设计不全面没有爬取摘要的问题,会一定影响性能,可在后期优化掉
/index添加索引添加索引 本来是考虑动态增加网页 后来没有用到
/index/batch添加索引批量增加索引,用在初始化数据库时
/index/remove删除索引根据ID删除索引
/database/list查看数据库查看目前已有的数据库
/database/drop删除数据库删除数据库和对应的所有文件
/database/create创建数据库根据数据库的名字获取或者创建数据库
/word/cut分词使用jieba分词进行分词