搜索引擎的原理是什么?
搜索引擎的原理可以分为:数据收集、建立索引数据库、索引数据库中搜索和排序。
1、数据收集:搜索引擎的自动信息收集功能分为两种类型,一种是定期搜索,即每隔一段时间,搜索引擎就会主动发送一个“蜘蛛”程序来搜索特定IP地址范围内的互联网站点,一旦发现一个新网站,它将自动提取该网站的信息和网址,并将其添加到自己的数据库中,另一种是提交网站搜索,即网站所有者主动向搜索引擎提交网站地址。
2、建立索引数据库:搜索引擎对收集的信息资源进行索引,编辑摘要以形成标准页面索引,并通过数据库管理系统建立相应的索引数据库,数据库中的每条记录基本上对应于一个网页,包括关键字、网页摘要、URL地址和其他信息。
3、索引数据库中搜索和排序:根据用户提出的查询要求,使用查询软件将其转换为计算机执行的命令,并在索引数据库中搜索符合条件的web记录,并根据相关度对搜索结果进行排序,相关度越高,排名越高,运行后,查询结果将返回给用户。
搜索引擎的整个工作过程包括三个部分:
1、抓取
搜索引擎为想要抓取互联网站的页面,不可能手动去完成,那么百度,google的工程师就编写了一个程序,他们给这个自动抓取的程序起了一个名字,蜘蛛(也可以叫做“机器人”或者“网络爬虫”)。
互联网上的信息存储在无数个服务器上,任何搜索引擎要想回答用户的搜索,首先要把网页存在自己本地的服务器上,这靠的就是网络爬虫。它不停的向各种网站发送请求,将所得到的网页存储起来。
通常的做法是利用网页之间的链接从一个网页出发,提取出指向其他页面的链接,把它们当成将下次要请求的对象,不停重复这个过程。有很多细节要被考虑。比如避免循环链接的网页;解析网页文档,提取里边的链接;当链接无法打开时对错误进行处理等。
2、索引
索引就是帮助程序进行快速查找的。大家都用过英汉词典。字典前边的按照单词首字母排列的部分就是索引。搜索引擎也一样。这里要介绍第一个最重要的数据结构:反转列表。
搜索引擎所拥有的文档中出现的每一个单词都拥有一个反转列表。它记录了这个单词在多少文档中出现,分别是哪些文档,每个文档分部出现多少次,分别出现在什么位置等信息。这样当搜索相关单词时,Google就不用遍历所有的文档,只需要查找每个单词对应的反转列表就可以知道这个词在哪里出现了。
每一个网络文档不仅只有文本信息。它还可能包括文件名,引用等部分。为了提高搜索质量,搜索引擎需要对文档的不同部分分别处理,构造反转列表。每一部分的单词都要被加入到这个词属于此部分的反转列表里。
3、搜索
有了索引,就可以快速找到所需内容了。前边说过搜索引擎根据用户的信息需求查找匹配的内容。信息需求来自于用户输入。搜索引擎用把用户输入的搜索字符进行一些类似于创建索引时对文本的处理,然后生成解析树。总之,以上技巧最终目标是帮助搜索引擎更好理解用户的信息需求,以便查找出更高质量的文档。
4、排序
用户输入的关键词,就可以查看到相关的内容了。这个时候,就会一条一条的展示,那谁排在第一,谁排在第二,我们把这种结果的排序,称为排名。
排名会是很复杂的,系统会对其进行一系列复杂的分析,并根据分析的结论在索引库中寻找与之最为匹配的一系列网页,按照用户输入的关键词所体现的需求强弱和网页的优劣进行打分,并按照最终的分数进行排列。
互联网搜索引擎是专门设计用于搜索万维网上大量数据的复杂软件系统。他们通过提供包含我们搜索的特定单词或短语的最相关网站的列表来帮助我们(他们的用户)了解我们需要了解的内容。 对于我们大多数人来说,搜索引擎是基本的网络工具。如果没有它们,我们将不得不记住我们想要访问的每个网站或页面的确切 URL。虽然这对大多数人来说似乎是不可思议的,但实际上曾经有一段时间互联网就是这样运作的。 幸运的是,事情发生了变化。今天,我们已经习惯了搜索引擎的便利,很难想象没有它们的生活。