这是我参与「第三届青训营 -后端场」笔记创作活动的第5篇笔记,搜索引擎主要是以最快的速度获取到最多的内容,通常是通过网页爬虫获取到互联网中数百上千个网页并对网页中的每一个文字(即关键词)进行索引,建立索引数据库的全文搜索引擎。当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。在经过复杂的算法进行排序后,这些结果将按照与搜索关键词的相关度高低,依次排列。典型的搜索引擎三大模块组成:
(一)信息采集模块
信息采集器是一个可以浏览网页的程序,被形容为“网络爬虫”。它首先打开一个网页,根据深度算法和广度算法,然后将后面的网页一个一个链接过来,之后
信息采集器将已经访问过的URL存储到自己的网页列表并打上已搜索的标记,自动标引程序检查该网页并为他创建一条索引记录,然后将该记录加入到整个查询表中。信息收集器再以该网页到超链接为起点继续重复这一访问过程直至结束(二)查询表模块
查询表模块是一个全文索引数据库,他通过分析网页,排除HTML等语言的标记符号,将出现的所有字或词抽取出来,并记录每个字词出现的网址及相应位置(比如是出现在网页标题中,还是出现在简介或正文中),最后将这些数据存入查询表,成为直接提供给用户搜索的数据库。
(三)检索模块
检索模块是实现检索功能的程序,其作用是将用户输入的检索表达式拆分成具有检索意义的字或词,再访问查询表,通过一定的匹配算法获得相应的检索结果。返回的结果一般根据词频和网页链接中反映的信息建立统计模型,按相关度由高到低的顺序输出。