我知道这篇文章标题党了,但是这里仅指出一些要点,细节实现没什么好讲的。本站的检索功能也是由此实现的,在搜索功能上线中有提到。

  • 爬虫
  • 数据清洗
  • 分词
  • 反向索引,建立"关键词-文档"的对应关系
  • 文档排序算法
  • 检索

人生苦短,我用python

爬虫

从网页上抓取数据,具有定时或者递归从网络上不断自我运行的特点。

数据清洗

网络上抓来的数据是非结构化数据,所以在数据清洗这一步应该把非结构化数据变成结构化数据。

分词

对数据库中的数据做分词,提取关键词,对关键词做权重处理等等

反向索引

通用的做法是以关键词做主键,下面存储文档(链接)列表

文档排序算法

商业搜索引擎一定要有排序功能,这是商业搜索引擎的一种商业模式。最基本的排序有按时间排序、热度、相关性等等

检索

快速的把结果返回给用户。

最后要说明的是,搜索引擎是一个具体且及其庞大的领域,每一个要点都可以拿出来单独写很多论文、文章、教科书。写一个玩具级别的搜索引擎很简单,但是实现一个商业级别的搜索引擎则是一个巨大的工程。