1.目标:
实现一个简易的搜索引擎,能对热门词汇进行提示,能对热门话题进行排序,点击后能进入对应网页。
2.实现用处:
了解我们常用的工具工作,搜索对于一个服务端开发来说是个不错的尝试
3.正文:
一个搜索引擎需要什么?首先需要查询结果的有效性,丰富性,再者对搜索的时效性也要有要求,现代搜索引擎的查询时间单位都是微妙数量级别,其实最致命的是查询时间,为了满足苛刻的业务需求,这快得采用缓存,而且得预先加载好结果,但是这会导致一个问题,数据实时性会打折扣。
那么一个搜索引擎的工作大概是一个什么流程呢,大致如下图:
1)数据抓取:用蜘蛛爬虫在互联网页面抓取,然后进行存储。
2)页面分析(预处理):对抓取过来的网页星系处理,包括提取页面的正文信息,对正文进行分词,为后续建立关键字索引及关键字倒排索引提供基础数据。
3)页面排序:结合内外部因素,计算出页面与关键词的相关程度,从而得到该关键字相关页面的排序列表。
4)关键字查询:搜索引擎接受来自用户的查询请求,对查询信息进行切词和匹配,在想用户返回相应的页面排序列表。
书籍:《SEO实战密码》