Files
py_reptile/搜索引擎工作思路.md
kevin ab81ca865c init
Signed-off-by: kevin <kevin@dsm.lmve.net>
2024-01-31 23:09:11 +08:00

1.4 KiB

工作流程

数据库存储结构

url->标签->单词

爬虫端(新url爬虫)

  1. 从数据库的将要爬取的ulr表获取一条url
  2. 获取url的html,分析连接'标签'与'单词'
  3. 获取url domin,分析新url与站内url
  4. 对新url打分,如果是站内url就扣分,(抑制爬虫在同一站点的爬取欲望)
  5. 将数据发送到后端

后端(接收新url爬虫)

  1. 接收数据,分离'标签'与'单词'
  2. 首先查询'标签'是否在数据库中存在,如果存在说明'标签'对应的'单词'也是存在的,这样就不必再往数据库写入内容,同时说明有重复的内容,要扣内容分
  3. 如果标签不存在,写入标签,写入对应的单词,单词有可能是重复的,所以要在本地建立一个表记录单词在数据库中的id,链接标签与单词时优先使用本地表
  4. 统计标签重复率,按百分比给内容打分,比如重复率是%100就是0分,重复率0%就是100分,分数越低,搜索排名越靠后.

搜索数据

  1. 将搜索内容分离成单词通过 单词->标签->url 的方式获取最终url并按照内容分排序
  2. 如果url被点击,内容分加1

爬虫端(优质内容更新)

  1. 时间倒序内容分正序,获取一条url爬取
  2. 将数据发送到后端

后端(接收优质内容更新)

  1. 对内容进行评分,重复的标签不扣分,如果标签相比之前少了就扣分,多了就加分