搜索引擎之旅系列往期文章:

中文搜索引擎原理分析与实现(1)基本理论

搜索引擎学习之旅1 - SEO的概念

搜索引擎学习之旅2 - 搜索引擎分类


前面的文章只是介绍了一些搜索引擎相关的概念,本文就介绍一下搜索引擎的完整工作流程。搜索页面的输入框是用户和搜索引擎进行交互的接口,其实这个搜索框仅仅是搜索引擎的冰山一角,可以思考一下几个问题:

  1. 搜索引擎返回的数据怎么来的?
  2. 搜索引擎如何准确地返回用户想要检索的信息?
  3. 搜索引擎如何能在极短的时间内返回信息?
  4. 搜索引擎返回的信息是如何排序的?

如果弄清楚了上面的几个问题,就对搜索引擎的工作原理有了简单的认识,本文将从以上几个问题出发介绍搜索引擎。

1 搜索引擎整体工作流程

搜索引擎本身包含网页抓取、网页评价、反作弊、建库、倒排索引、索引压缩、在线检索、ranking排序策略等等流程,下图是用户访问谷歌浏览器后其后台的工作流程:

下图是更加详细的搜索引擎工作流程:

本文只是简单地梳理一下搜索引擎的各个流程,每个模块的详细流程后面我会结合开源的一些文档具体总结。

这里先简单地以网页爬虫为引,简单说明一下:搜索引擎的各个模块都有非常多的问题需要解决。

2 搜索引擎基础:网页抓取

这是搜索引擎的第一步,毕竟搜索是建立在数据的基础之上的~,在之前我也写过一篇博客介绍使用Scrapy框架爬取网站数据,有兴趣的可以移步了解一下。网页抓取需要用到Spider,之所以称之为Spider是因为在抓取网页的过程中,Spider需要从当前爬取的网页中提取到子链(该网站中指向的其他网页的链接)。

名词解释:

作弊网站是指在网页设计中,为了提升网页在搜索引擎中的排序,设计者采用的一系列欺骗搜索引擎的做法,主要表现是普通用户看到的页面与搜索引擎抓取到的内容不一致。

robots.txt是网站放在服务器根目录下的一份文档,可以将其理解为网站和爬虫之间的一份协议,该文件会指出本网站允许哪些爬虫爬取哪些目录下的网页。

对于爬虫而言至少有如下问题需要解决:

  1. 由于互联网太大了,爬虫是很难抓取到所有的网页的
  2. 网页中存在垃圾网页和作弊网页,如何准确识别这些网页,避免其污染数据影响搜索结果
  3. 应该如何指定爬取的优先级呢?
  4. 应该侧重于深度爬取(从当前页面一直往下爬)还是广度爬取(先爬取先发现的网页)呢?
  5. 如何去重(相同url,内容高度相似)呢?
  6. 如何增量更新呢?
  7. 网页的内容可能会发生改变,如何确保数据库中已经爬取的网页是最新的呢?
  8. 整个爬虫框架应该如何设计呢?
  9. 如何让整个爬虫框架更高效?
  10. 如何合理的估计爬虫负载?
  11. 如何网站禁止爬虫爬取怎么办?

我会认真学习部分爬虫框架,并在之后的文章中仔细地分析。

书籍推荐

《这就是搜索引擎-核心技术详解》

References

1. https://blog.csdn.net/u013527419/article/details/76851809

搜索引擎学习之旅3 - 搜索引擎工作流程相关推荐

  1. Git 学习笔记:5 分布式工作流程

    Git 学习笔记:5 分布式工作流程 分布式工作流程 集中式工作流 集成管理员工作流 司令官与副官工作流 工作流程总结 向一个项目贡献 提交准则 私有小型团队 John's Machine 私有管理团 ...

  2. kafka学习(二)kafka工作流程分析

    本文借鉴:再过半小时,你就能明白kafka的工作原理了(特此感谢!) 一.发送数据 PS:Producer在写入数据的时候永远的找leader,不会直接将数据写入follower 1.follower ...

  3. illustrator下载_平面设计:16个Illustrator快捷方式可加快工作流程

    illustrator下载 I know, I know - keyboard shortcuts sound so nerdy, and you're a graphic designer, not ...

  4. Pr入门系列之一:了解Pr及视频工作流程

    Adobe Premiere Pro,简称 Pr. Pr 是专业的非线性视频编辑软件.可用于视频的采集.剪辑.调色或者添加特效.字幕等,提供了一整套从剪辑.调色到渲染输出的影视后期解决方案. ◆  ◆ ...

  5. 【SEO学习】第一步:了解搜索引擎基本工作原理和工作流程

    我们常用的搜索引擎一般都是百度.谷歌.搜狗.360.bing这五种,对于搜索引擎的原理和工作流程应该是一样的.今天郑州SEO老冯先给大家说一下百度搜索引擎的工作原理以及抓取过程.这是SEO学习的第一步 ...

  6. Elasticsearch基础1——搜索引擎发展史和工作流程、es/es-head/kibana的基础安装

    文章目录 一.搜索引擎 1.1 搜索引擎的发展背景 1.2 Lucene和Elasticsearch 1.3 Solr和Elasticsearch对比 1.4 数据搜索方式 1.5 搜索引擎 1.5. ...

  7. 搜索引擎的基本工作流程

    本文出自http://www.wenbanana.com稻草人博客,欢迎访问! 说到搜索引擎,我们就立即想到google.baidu等这些搜索引擎.其实搜索引擎的工作原理可以基本划分为3个部分:网页搜 ...

  8. SEO笔记:搜索引擎的工作流程

    搜索引擎的工作流程: 爬行和抓取 搜索引擎派出一个能够在网上发现新网页并抓文件的程序,这个程序通常称之为蜘蛛(Spider).搜索引擎从已知的数据库出发,就像正常用户的浏览器一样访问这些网页并抓取文件 ...

  9. 一起来学习网站SEO优化工作流程到底怎么做?

    作者介绍:大家好!我是鱿年年★→ 个人主页:鱿年年的博客主页 系列专栏:网站SEO 目录 前言 一:行业网站概况分析 二:布局关键词 三:SEO优化 1:站内优化 2:站外优化 四:网站数据的监测工作 ...

  10. Blender+SP+UE5游戏艺术工作流程学习

    Blender到虚幻引擎5 Blender游戏艺术 Blender for Game Art 你会学到: 如何在Blender中创建三维模型 UV如何展开和布局 如何在Substance Painte ...

最新文章

  1. 2019年上半年国内学者在植物领域共发表6篇Science, 1篇Nature,1篇Cell!
  2. Reddit年度盘点:2019年最佳机器学习项目
  3. numpy.transpose()转置失败的问题
  4. 实战脚本写入注册表,完善WindowsServer自动化运维
  5. PAT-1124. Raffle for Weibo Followers (20)
  6. FCKeditor 2.6 安装配置使用指南(asp)
  7. scanf最好与fflush(stdin)配合使用
  8. js处理异常try{}catch(e){}
  9. 转换实体类_利用Java反射机制进行Map和JavaBean间转换
  10. OpenStack精华问答 | OpenStack和CloudStack对比
  11. C#程序在线升级代码---webservice
  12. desktop.ini winxp之马上更新图标
  13. 中国内部物流输送系统市场趋势报告、技术动态创新及市场预测
  14. u 20ubuntu 安装 postfix_汽车天线安装指南
  15. 字符,字符集,字符编码
  16. 【2022最新Java面试宝典】—— Java集合面试题(52道含答案)
  17. 零基础学SQL(三、MYSQL环境变量配置及启动)
  18. arcgis地理数据库之创建sde用户
  19. vss备份,使用批处理,每次只能备份当前打开的项目,怎么才能备份所有的项目呢...
  20. RK3066 实现LED闪烁的代码分析

热门文章

  1. CISCO路由器license激活图解教程
  2. 三相全桥整流电路_三相全波整流电路原理?
  3. cfree编译报错[Error] g++.exe: 5\mingw\lib\: No such file or directory
  4. 通软终端安全管理系统V6 卸载脚本
  5. matlab 轮廓系数,kmeans聚类理论篇K的选择(轮廓系数)
  6. iOS开发中使用代码控制横竖屏的切换
  7. 人生的意义到底是什么?
  8. React生命周期钩子函数
  9. 更新:电脑微信多开v3.5
  10. 推荐16个超棒的国外免费PSD资源素材网站