搜索引擎的“三板斧”:数据搜集—gt预处理
优采云 发布时间: 2021-06-09 04:09搜索引擎的“三板斧”:数据搜集—gt预处理
首先我们来简单了解一下搜索引擎的“三招”:数据采集—>预处理[索引]—>排名。
数据采集
这是数据采集阶段,将广阔的互联网世界中的网页采集到自己的数据库中进行存储。
1、crawling 维护策略
面对大量需要处理的数据,很多问题需要提前考虑。比如“实时取”还是“提前取”?在维护数据时,是“定期爬取”(定期深度爬取替换原创数据)还是“增量爬取”(以原创数据为基础,以旧换新)?
2、链接跟踪
我们都知道蜘蛛会沿着链接爬行并爬行页面。如何快速抓取对用户来说比较重要的信息,实现广泛覆盖,无疑是搜索引擎考虑的重点。
我们来谈谈第一个,如何捕捉重要信息。
要知道这一点,主页必须了解人们如何主观判断页面是否重要(请自行思考)。其实无非以下几种情况:
网页有历史权重积累(域名等时间长,质量高,资历老),很多人会参考这个页面(指向外部链接),很多人会参考这个页面(转发或镜像) ),该页面方便用户快速浏览(浅层次),频繁出现新内容(更新)等。
在链接跟踪阶段,只能获取到“该页面便于用户快速浏览(浅层)”信息,其他信息未获取。
信息覆盖实际上是蜘蛛在跟踪链接时使用的两种策略:深度抓取和广泛抓取。
如果你用你的屁股考虑一下,你就会知道广泛的爬行有助于获得更多的信息,而深度的爬行有助于获得更全面的信息。搜索引擎蜘蛛在抓取数据时通常会同时使用这两种方法,但相比之下,广泛的抓取比深度抓取要好。
3、地址库
在建立搜索引擎的初期,必须有手动输入的*敏*感*词*库,否则蜘蛛将无法启动连接跟踪。按照这些*敏*感*词*库,蜘蛛可以找到更多链接。
当然,多个搜索引擎会发布一个页面提交入口,以便站长提交网站。
但值得一提的是,搜索引擎更喜欢他们找到的链接。
4、文件存储
链接跟踪完成后,需要存储跟踪信息。存储的对象,第一个是url,第二个是页面内容(文件大小、上次更新时间、http状态码、页面源代码等)。
关于url,因为上次看到一个泛端口作弊网站,这里简单提一下。一个url由传输协议、域名、端口、路径、文件名等几部分组成。
预处理[索引]
数据捕获后,需要进行预处理(很多人喜欢把这一步叫做索引)。主要从文本提取、分词、索引、链接分析等方面。
1、提取文本
一个很好理解的部分,提取源代码中的文本。当然,需要注意的是,这会收录元信息和一些替代文本(例如alt标签)。
2、分词
每次走到这一步,总想感叹汉字的博大精深。什么!什么!什么!
叹了口气,继续走。
分词是中文特有的一步,即根据句子的意思对文本进行拆分。一般情况下,分词会基于字典和统计。
为了更有效地进行机器分割,通常采用“正向匹配”和“反向匹配”两种思路。值得一提的是,“反向匹配”的方式更容易获得更有价值的信息(想想为什么)。
需要强调的一点是,为了方便分词后的词组更好地表达文章的核心意思,去暂停词(比如,啊,嗯等词)和去噪(导航, 版权) 将进行。 、分类等影响主题词义表达的内容)。
3、去重
停止去噪后,剩下的词组已经可以表达页面的主体了。为了防止内容被搜索引擎收录重复,搜索引擎需要一种算法来进行去重处理。
比如大家熟知的常用MD5算法,请点击百度百科链接,自己做脑补。
4、创建索引
去重完成后,就是大家常说的正向索引和倒排索引。
5、link 算法
排名
创建索引文件后,排名不远了。
1、搜索词处理
搜索引擎也会对搜索词进行分词处理(想想为什么)。说到这里,我不禁感受到了汉字的深邃。
针对这个,我想补充一个概念,叫做文本粒度。嗯,为了不让孩子误认,我还是给百度官方解释一下。
2、文件匹配和子集选择
根据百度官方的说法,将用户搜索的词进行分词后,索引库就可以召回了。这里要考虑的一件事是用户倾向于在前几页上查看搜索结果。因此,搜索引擎为了计算资源,往往只返回部分结果(百度显示76页,谷歌显示100页),即召回索引库中文档的子集。
3、相关计算
一般情况下,影响关系的因素有五个。
关于这部分,也就是大家常说的SEO优化方法和方法,这里不再赘述。
4、ranking 过滤和调整
其实经过相关性计算,结果已经大致确定了。只是为了惩戒一些涉嫌作弊的网站,搜索引擎会对该部分的结果进行微调。
例如百度的11位机制。
5、结果显示
深吸一口气,终于可以看到显示的结果了。
返回的结果将包括标题、描述、快照条目、快照日期、url等
这里值得一提的是,不仅描述了搜索引擎可以动态抓取,或许在不久的将来,标题也会动态抓取。