# 学术搜索引擎 **Repository Path**: xiangzheng666/paperread ## Basic Information - **Project Name**: 学术搜索引擎 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-10-20 - **Last Updated**: 2024-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学术搜索引擎 ![example](example.jpg) - 背景 - 看论文时用百度学术,谷歌学术,都不是很爽,而且搜索出来的都是乱七八糟的,所以自己搭建了一个引擎,将我研究领域的几个顶刊的数据到导入进去了,这样搜索就会更准确一点。 - 而且在写论文时经常需要引用文献,经常忘记哪句话是来自于以前看的哪篇论文,所以这个就更方便管理自己看过的论文,虽然像endnote等工具可以管理,但是我觉得这个太笨了,而且搜索的效果有点差。 - 看论文时有时候会突然涌现idea,会写笔记,这个笔记也是非常重要,我就把这个功能加入进去了,还可以与同组的师兄弟共享笔记,也支持笔记搜索。剽窃他们的。 - 架构 - 前端:vue - 后端:springboot - 数据库设计 - mysql: - user:保存用户信息 - note:保存笔记信息 - 聚集索引(userid,paperid)找用户笔记 - 普通索引 (paperid) 找文章笔记 - paper:保存论文信息 - paper主键: - 优化:因为要经常通过papername找note已经es里面的paper,所以需要优化,开始时是直接使用papername的(长字符串),后面变成papername的绰号(每个单词的首字母与尾字母),再回来直接使用papername的hashcode(最后才想到) - es: - paper - text,long - ik_max_anlanys - note - 为什么要分开保存:开始我放到一起存的,但是note经常修改,非常影响es(速度与存储),所以优化一下分开存。 - 与mysql同步 - 分布式事务 - redis - satoken管理 - 自动续约 - 用户鉴权,登录 - 存热点数据 - uuserid:paperid - paperid:paperreadnum - noteid:notestarnum - 与mysql同步 - 延迟双删 200ms - 业务 - 用户paper,note管理 - search,(根据什么搜索,聚合) - 笔记管理 - 日志管理(no) # 记录 ##### 2023-10-20 第一版 ok 计划: 1. 加入日志信息管理 2. 使用python爬虫+logstash自动导入