本节将深入讨论搜索引擎的原理。
1.1.1 搜索引擎的核心问题
首先要理解使用搜索引擎的用户真正的需求,以及使用搜索引擎的情景,即理解这个用户想要的内容,获取用户发生查询的时间、地点、周围环境,根本的目的是要理解使用搜索引擎的用户当前所处状况下的搜索需求。
其次的核心问题就是判断搜索内容的相关性,目前搜索引擎主要是基于几种关键词匹配方法。最后是判断搜索结果的可信赖性,对搜索产生的结果进行可信赖度排序,将可信赖度更高的正确结果返回给使用搜索引擎的用户。
主流的关键词匹配有VSM+TF*IDF以及BM25和LTR等。
1.1.2 搜索引擎的分类
• 批量型搜索引擎:搜索引擎爬虫有明确并且清晰的抓取范围和目标,只针对某一主题或者某一范围进行爬取数据。
• 增量型搜索引擎:搜索引擎爬虫不断抓取并定时更新,这是世界上主流搜索引擎的类型,通过一刻不停的抓取网页内容使搜索引擎的数据库中的内容不断增加。
• 垂直型搜索引擎:搜索引擎爬虫抓取特定行业/主题或者自身企业本身的信息,例如所有视频网站的搜索,只针对该网站自身的数据进行搜索,该分类不在本次讨论范围之内。
1.1.3 搜索引擎的结构
• Spidear(爬虫)系统:通过Spider爬虫不断的爬取网页数据,来随时监控互联网上新添加的内容,频率极高,爬虫系统是搜索引擎最为重要的部分。
•
• Search搜索&Index索引建立系统:
• ,由于索引的存在,获取数据将比普通的查找算法更加快速,搜索速度直接决定了搜索引擎的性能。在爬虫爬取到数据之后由索引建立系统为每条数据建立索引
• Rank打分排序系统:每个不同的搜索引擎都会对爬取的数据进行打分,但是众多搜索引擎的打分标准并不相同,这就是我们使用不同搜索引擎,搜索相同的关键字,但是返回的结果却绝大多数不同的原因,Rank打分系统可以说是搜索引擎的灵魂所在,如何返回最精准也是用户最需要的答案,这一切都交给Rank打分系统进行判断,这也是Google牢牢霸占世界第一搜索引擎的至关重要的因素。
• Web内容数据库:Google以及Bing或者百度这样规模的搜索引擎的数据库会储存大量的数据。
• Index索引数据库:在爬虫爬取互联网上的数据之后Index索引建立系统会生成索引,这些索引将会标记每个数据的基本信息与数据库存放的位置,当我们使用搜索引擎输入关键字进行搜索的时候,搜索引擎将会根据关键字从索引数据库中查询索引,之后使用索引在庞大的Web内容数据库中进行搜索。
1.1.4 搜索引擎的原理
搜索引擎有三个基本阶段:首先抓取网站,然后发现内容,最后建立索引。
将爬取的内容进行分析并存储在大型数据库中,索引将涉及到爬虫扫描的网站的所有基本信息以及完整列表,页面标题,图像以及这个页面所包含的关键字,甚至有些爬虫会保存整个页面并寻找一些其他信息,例如页面布局,广告单元的位置以及页面上链接的位置。