快来看看搜索引擎到底是怎么工作的吧!
什么是SE?
搜索引擎(Search Engine,简写为SE)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。
搜索引擎工作原理的过程
- 在互联网中发现、搜集网页信息
- 对信息进行提取和组织建立索引库
- 检索器根据用户输入的查询关键字,在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并将查询结果返回给用户
1.抓取网页
每个独立的搜索引擎都有自己的网页抓取程序爬虫spider。爬虫spider顺着网页中的超链接,从这个网站爬到另一个网站,通过超链接分析连续访问抓取更多网页。被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。
2.处理网页
搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中,最重要的就是提取关键词,建立索引库和索引。其他还包括去除重复网页、分词(中文)、判断网页类型、分析超链接、计算网页的重要度/丰富度等。
3.提供检索服务
用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的网页;为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要以及其他信息。
搜索引擎工作原理的分析
一、爬行和抓取
1.蜘蛛
搜索引擎用来爬行和访问页面的程序被称为蜘蛛,也称为机器人。
2.跟踪链接
最简单的爬行查看方式分为深度优先和广度优先。
(1)深度优先
蜘蛛沿着发现的链接一直向前爬行,直到前面再也没有其他链接,然后返回到第一个页面,沿着另一个链接再一直往前爬行。
(2)广度优先
蜘蛛在一个页面上发现多个链接时,不是顺着一个链接一直向前,而是把页面上所有第一层链接都爬一遍,然后再沿着第二层页面上的发现链接爬向第三层。
二、预处理
1.提取文字
现在的搜索引擎还是以文字内容为基础。因此预处理要做的就是从HTML文件中去除标签、程序,提取出可以用于排名处理的网页文字内容,有时也会提取一些特殊包含文字信息的代码。比如Meta 标签中的文字、图片替代文字、Flash文件的替代文字,链接锚文字
2.中文分词
分词是中文搜索引擎特有的步骤。搜索引擎存储和处理页面及用户搜索都是以词为基础的。中文分词方法基本上有两种:一是基于词典匹配,二是基于统计 。
如:在百度中搜索“搜索引擎优化”,百度把“搜索引擎优化”当成一个词,而在Gooogle分切为“搜索、引擎、优化”三个词。所以,百度分切分得更为合理,Google分词时倾向于更为细碎。
3.去停止词
页面内容中经常都会有一些出现频率很高,却对内容没有任何影响的词,如“的、地、得”之类的助词,“啊、哈、呀”之类的感叹词。这些词被称为停止词,搜索引擎在索引页面之前会去掉这些停止词,使索引数据主题便为突出,减少无谓的计算量。
4.消除噪声
搜索引擎需要识别并消除这些噪声(比如:版权声明文字、导航条、广告等),排名时不使用噪声内容。
5.去重
同一篇文章经常会重复出现在不同网站及同一个网站的不同网址上,搜索引擎并不喜欢这种重复性的内容。用户搜索时,如果在前两页看到的都是来自不同网站的同一篇文章,用户体验也差。搜索引擎希望只返回相同文章中的一篇,所以在进行索引前还需要识别和删除重复内容,这个过程就称为“去重”。
6.正向索引
搜索引擎在经过前面的工作提取出关键词,按照分词程序划分好的词,把页面转换为一个关键词组成的集合,同时记录每一个关键词在页面上的出现频率、出现次数、格式(如出现在标题标签、黑体、H标签、锚文字等)、位置(如页面第一段文字等)。这样每一个页面都可以记录为一串关键词集合,其中每个关键词的词频、格式、位置等权重信息也都记录在案,搜索引擎程序再会将页面及关键词形成词表结构存储进索引库。
7.倒排索引
正向索引不能直接用于排名。假设用户搜索关键词“2”,如果只存在正向索引,排名程序需要扫描所有索引库中文件,找出包含关键词“2”的文件,再进行相关性计算。
这样的计算量无法满足及时返回排名结果的要求。所以搜索引擎会将正向索引数据重新构造为倒排索引,把文件对应到关键词的映射转换为关键词到文件的映射。
8.连接关系计算
现在所有的主流搜索引擎排名因素中都包含网页之间的链接流动信息。搜索引擎在抓取页面内容后,必须事前计算出:页面上有哪些链接指向哪些其他页面,每个页面有哪些导入链接,链接使用了什么锚文字,这些复杂的链接指向关系形成了网站和页面的链接权重。
9.特殊文件处理
虽然搜索引擎在识别图片及从Flash中提取文字内容方面有些进步,不过距离直接靠读取图片、视频、Flash内容返回结果的目标还很远。对图片、视频内容的排名还往往是依据与之相关的文字内容。
快来看看搜索引擎到底是怎么工作的吧!相关推荐
- How browsers work -Behind the scenes of modern web browsers 浏览器到底是怎么工作的、浏览器的工作原理(完整中文翻译)
How browsers work -Behind the scenes of modern web browsers 有空翻译一下这篇必读的文章 -浏览器到底是怎么工作的.浏览器的底层原理是啥.浏览 ...
- 快节奏生活,到底,快在哪里?
这两年,随着<亲爱的客栈>和<向往的生活>热播,国内掀起了一股追寻慢生活的热潮.放慢脚步,听着悠然的音乐,约上朋友两三,酌上小酒一杯,微醺朦胧中感受休闲时光成为人们向往的生活状 ...
- “快半年了,找不到工作,我好焦虑,要怎么办?”
"快半年了,找不到工作,我好焦虑,要怎么办?" 当代年轻人焦虑日常的灵魂一问. 疫情肆虐,企业纷纷倒闭: 众多企业为维持生计,缩小开支,不断裁员: 双减政策导致大批教培行业的员工失 ...
- python程序员工作时间_Python程序员是怎么找工作的?怎么最快时间找到自己想要的工作?...
前言 从智联招聘爬取相关信息后,我们关心的是如何对内容进行分析,获取用用的信息. 本次以上篇文章"5分钟掌握智联招聘网站爬取并保存到MongoDB数据库"中爬取的数据为基础,分析关 ...
- Spring MVC 到底是如何工作的
转载自 Spring MVC 到底是如何工作的 这篇文章将深入探讨Spring框架的一部分--Spring Web MVC的强大功能及其内部工作原理. 这篇文章的源代码可以在GitHub上找到. 项 ...
- 乐视三合一摄像头和kinect_乐视三合一体感摄像头快评测,看看到底怎么玩?
原标题:乐视三合一体感摄像头快评测,看看到底怎么玩? 说起"体感",也许很多人都不知道,即使知道也仅限于Kinect,其实乐视早就开始了这方面的探索.先是之前的3D体感摄像头,现在 ...
- 目标跟踪:卡尔曼滤波(Kalman Filter)到底是怎么工作的?
Kalman filter到底是怎么工作的? 本文主要参考的文章:https://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/,图片也基 ...
- java 注解开发_Java中的注解到底是如何工作的?
作者:人晓 www.importnew.com/10294.html 自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Over ...
- Java中的注解到底是如何工作的?
http://www.importnew.com/10294.html 自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Ove ...
最新文章
- 微信小程序开发教程(基础篇)8-数据绑定下
- 数据结构与算法:排序算法的稳定性以及各性能比较python实现
- 我已经把它摸的透透的了!!!Spring 动态数据源设计实践,全面解析
- 没写client,想先测试server端怎么办?
- CVPR 2020|华为发布基于连续进化的CARS算法,0.4GPU天输出帕累托前沿
- java referencequeue_java源代码 Reference和ReferenceQueue分析
- 让TOOLBAR呈多列显示
- 关于qq创始人----马化腾的一些琐事
- 我没让机器人变身,它自己就变了 | Science Robotics
- 如何使用CommitMonitor工具监控 SVN
- NetSuite ERP软件系统特点介绍!
- html 强制占据一行,html – 如何强制内联div保持在同一行?
- 数据挖掘建模过程——思维导图
- C语言处理中文字符,C语言中关于汉字的处理
- Ruby On Rails和locomotiveCMS安装经历
- 软件工程师学习硬件原理图--第一讲看懂GPIO和门电路(弱智学前班儿童系列)
- 30岁有哪些方向可以转型?
- spring定时任务的应用
- Single Image Dehazing via Multi-scale Convolutional Neural Networks with Holistic Edges 2020 个人学习笔记
- 2《小学数学教材解读策略研究》开题报告
热门文章
- linux 网卡天启与关闭,手把手教你Linux关闭防火墙命令
- springboot1.5.x升级到springboot2.x 解决方案
- dbeaver连接Oracle缺少orai18n.jar,xdb6.jar的解决方法
- 微信小程序数据助手怎么用
- 01、RN 系列之 什么是 ReactNative
- 洛谷 P2431 正妹吃月饼 解题报告
- 四川2020计算机本科录取分数线,2020年四川高考本科一批及一本录取时间和投档录取分数线统计...
- 关于日立存储更换故障硬盘
- Netty 中的心跳机制
- 秀恩爱分得快 (25 分)