搜索引擎优化(seo)的基本工作模块( 【后端技术指南】初识搜索引擎2.1搜索引擎分类搜索引擎(上) )
优采云 发布时间: 2022-01-21 00:10搜索引擎优化(seo)的基本工作模块(
【后端技术指南】初识搜索引擎2.1搜索引擎分类搜索引擎(上)
)
来源 | 后端技术指南
阿凡达 | 图像错误
今天就写在前面,准备和朋友一起学习一些通用搜索引擎的技术点。
鉴于搜索引擎的内容很多,每个版块写几个文章就够了,所以这个文章只是为了吸引别人的玉,需要深挖。
通过本文章,您将对通用搜索引擎的基本原理和组件有一个清晰的认识。如果你仔细阅读它,你一定会有所收获!
废话不多说,大家上车冲鸭!
了解搜索引擎
2.1 搜索引擎分类搜索引擎根据使用场景和规模可以分为两类:
通用搜索引擎
通用搜索也称为大搜索,如谷歌、百度、搜狗、神马等。
垂直搜索引擎
垂直搜索也叫垂直搜索,是在特定领域的搜索,比如用QQ音乐搜索周杰伦的歌曲。
两类搜索引擎的数据规模和数据特征虽然不同,但都旨在弥合用户与海量信息之间的鸿沟。
2.2 搜索和推荐 搜索和推荐经常被比较,但它们之间也有一些区别和联系。
共同论点
从宏观上看,搜索和推荐是为了解决用户与信息的隔离问题,为用户提供有用/需要/喜欢的信息。
特殊功能
搜索通常由用户触发并根据自己的意图进行检索,而推荐通常由系统主动推送,让用户看到可能感兴趣的信息。
2.3 搜索引擎评价标准,我们每天都在和搜索引擎打交道。对搜索引擎的评价可以概括为:准确性、及时性、响应速度、权威性等。
换句话说,搜索引擎知道用户真正在寻找什么,并且可以快速准确地显示它们。一些热点和突发信息可以及时收录展示,可以很好的赢得用户。
这个目标需要搜索引擎多个模块的配合,是一个复杂的系统工程,并不容易。
常见搜索引擎的总体概述
3.1 搜索引擎的基本流程用通俗易懂的语言解释,一般搜索引擎一般都是这样。
怎么运行的:
1.网络蜘蛛每天孜孜不倦地对收录网页进行工作,然后进行存储,使每个站点的页面都有一个镜像,规模达到百亿/千亿。
2. 不能直接使用单纯的镜像。需要对其进行处理和切分,建立搜索词与网页的对应关系,这样用户在搜索某物时,就会得到很多相关的网页。
3. 比如“搜索隐藏的角落”可能找到100个相关网页,但是网页和搜索词之间的相关性必须强或弱,所以需要对网页进行排序,而且有很多排序策略。将优质网页放在最前面,向用户展示。
用户看到相关结果后,点击或跳过,搜索引擎根据用户的相关动作进行调整,实现整个闭环流程。
4.为了更好地了解用户的真实目的,需要了解搜索词的意图,分段录入,替换同义词,纠正语法错误,然后根据这些搜索词获取数据来查找用户。记住网页。
例如,如果搜索词是“Eagle”,它可能是自然界中的老鹰,也可能是 NBA 中的一支球队:
3.2 搜索引擎的基本组件
我们先简单看一下各个模块的基本组成和主要功能:
网络爬虫模块
搜索引擎中的网络爬虫是网页的搬运工,负责下载互联网上允许被爬取的网页。如果将搜索引擎视为餐厅,那么网络爬虫模块就是餐厅的买家。
内容处理模块
负责网络爬虫下载页面的内容分析、内容清洗、主题提取、索引、链接分析、反作弊等工作。
内容存储模块
存储模块是搜索引擎的坚强后盾,存储着被抓取的原创网页、处理后的中间结果等。这个存储规模也很大,可能需要上万台机器。
用户解析模块
用户模块负责接收用户的查询词、分词、同义词转换、语义理解等,弄清楚用户的真实意图和查询重点,返回正确的结果。
内容分类模块
结合用户模块解析的查询词和内容索引生成用户查询结果并对页面进行排序是搜索引擎比对的核心部分。
接下来,我们将简要介绍几个模块的基本内容和技术点。
网络爬虫模块介绍
网络爬虫模块是通用搜索引擎的一个非常基本的组件。一般由分布式爬虫实现。下面我们来看看这个搬运工是如何实现海量网页发现的:
网络爬虫的基本流程:
将热门网站的优质网址作为*敏*感*词*,放入待抓取的网址队列中
读取要爬取的URL获取下载地址
解析下载的网页内容,将网页存储到hbase/hdfs等,提取网页中存在的其他URL
发现一个新的URL进行去重,如果没有爬取,则放入爬取队列
直到待爬取的URL队列为空,本轮爬取完成
爬取过程中有多种遍历策略:深度优先遍历DFS、广度优先遍历BFS、部分PageRank策略、OPIC在线页面重要性计算策略、大站点优先策略等。
在工程实践中,需要根据自身情况和搜索引擎的特点,选择某种策略或策略组合。
网络爬虫需要遵循Robots协议(网络爬虫排除标准),这是网络爬虫和网站之间的君子协定,网站通过协议告诉网络爬虫什么可以被抓,什么不能。
同时,网络爬虫需要考虑爬取的频率,防止网站负担过重。简而言之,搜索引擎的网络爬虫需要适度。
网页内容处理模块
爬虫模块存储网页内容后,网页内存处理模块开始解析网页内容。主要任务包括:数据清洗、网页内容分词、建立正向索引、建立倒排索引等。
5.1 数据清洗
一般来说,除了具体的内容外,网页中还会有很多不相关的东西,比如html标签、推广等,在实际的搜索引擎中是没用的。
内容处理模块会清理无用的数据和标签,为后续的分词做准备。
5.2 中文分词
清洗后的内容是通过分词关键词提取出来的,比如一个网页收录1000个词,分词后大约有50个词,相当于提取了网页的主干,会分析标题,摘要、正文和正文的其他部分。内容以不同的权重处理。
在分词过程中,会去除停用词、功能词等,如“的、得、地”,从而还原网页的主要内容。
我们用在线网页分割工具和真实网页模拟这个过程:
网络分词在线工具:
爬网:
可以看出,分词后可以标注词频。这些都是后续网页排名的重要来源,但是中文非常复杂,所以分词算法有很多,常见的有:
基于字符串匹配的分词算法
基于概率统计的分词算法
基于语义规则的分词算法
其他算法
5.3 正索引
假设我们对每个网页的docid进行唯一的编号,经过前面的分词,一个网页会被分成多个不同权重的实体词。
所谓正排名,是指所有属于该网页的内容都可以根据docid获得。这是一个符合我们思想的积极过程。相对而言,会有倒排索引。
我们以《隐秘的角落》剧情介绍的一页为例,模拟分词的情况,大致如下(本次分词结果纯属脑补,以实际为准):
5.4 倒排索引
假设我们已经分割了10000个网页,其中收录一些公共搜索词:微山湖、智取虎山、三十站立、隐藏的角落等,那么我们将在汇总关系后建立搜索词->网页映射。
那么,对于搜索词“隐藏的角落”,有很多网页,倒排索引相当于从一个词中可以拉出多少个文章的过程。
就像我们提到食物一样,我们认为:火锅、烧烤、烤鸭、炒菜等,是一个从点到面的过程,而这个逆向过程在搜索引擎中非常重要。
5.5 章节总结
内容处理模块对抓取的网页进行清洗,提前将新的URL提供给爬虫模块,对内容进行分段,建立正向索引和倒排索引,是链接前后的中间链接。
特别是提到正向索引和倒排索引并不直观,但道理不难理解:
正指数:一个网页中有多少个关键词,具体是属于网页本身的内容的集合,也就是一个网页。
倒排索引:一个搜索关键词对应多少个相关网页,即替代网页的集合,是网页的一种。
网络排名和用户模块6.1 网络排名的必要性
由于存储的网页数以百亿计,那么一个搜索词可能涉及数万、数十万甚至更多的相关网页。
网页排名需要综合考虑:相关性、权威性、及时性、丰富性等方面。
搜索引擎要向用户展示高质量且相关性强的网页,并将其放在首位,否则搜索效果会很差,用户不会购买。
事实上,情况也是如此。例如,搜索引擎返回 10 页结果,每页 10 个,以及 100 个摘要。一般用户不会点击1-3页之后的页面,所以排序好的header内容对于搜索来说非常重要。结果很重要。
我们还是以“隐藏角落”的检索为例。百度一共返回了10页,其中1-2页是强相关的,算是比较好的检索结果:
6.2 常用的网页排序策略
网页排名策略是一个不断优化和改进的演进过程。我们来看看排名策略:
基于词频和位置权重的排名
这是早期搜索引擎经常采用的方法,相对简单但效果很好。
简单来说,排名是根据关键词在网页中出现的频率和位置,因为一般认为搜索词出现的次数越多,位置越重要,网页的相关性和排名越高。
词频不仅仅是次数的计数。它需要一个全局的概念来判断关键词的相对频率。这就是我们要讲的TF-IDF逆文档频率。我们来看看百度百科的解释:
TF-IDF(词频-逆文档频率)是一种常用的信息检索和数据挖掘加权技术。
TF 是词频,IDF 是逆文档频率。
TF-IDF 是一种统计方法,用于评估单词对文档集或语料库中的一个文档的重要性。
一个词的重要性与它在文档中出现的次数成正比,但与它在语料库中出现的频率成反比。
举个栗子:
“吃”这个词在网页上出现了10次,虽然很多,但是“吃”这个词太常见了,因为它出现在很多其他网页中,所以搜索词“吃”的重要性相对降低了。
基于链接分析的排名
链接分析排名认为,一个网页被其他网页引用的次数越多或被引用的权威网页越多,该网页的质量就越高。
基于链接分析的排名算法有很多,其中最著名的PageRank算法被Google广泛使用,是其核心排名算法。
我们来看看PageRank算法的基本思想:
网页的重要性由 PageRank 值来衡量。一个网页的PageRank值体现在两个方面:引用该网页的其他网页的数量和引用该页面的其他页面的重要性。
假设一个网页A被另一个网页B引用,网页B给网页B所引用的网页分配一个PageRank值,所以对网页A的引用越多,其PageRank值就越高。
另外,网页B越重要,它所引用的页面可以分配的PageRank值越多,网页A的PageRank值越高,越重要。
其实这个算法说起来很简单:比如写公众号的时候,大V转载就相当于引用。其他公众号转载越多,您的公众号内容质量就越高。
PageRank算法也存在一定的问题。比如对新页面不友好,新页面暂时没有被大量引用,所以PageRank值很低,而PageRank算法强调页面之间的引用关系,可能付出的还不够注意页面本身的主题内容。,也就是所谓的话题漂移问题。
与PageRank算法类似,还有一些其他算法可以弥补主题关联问题,包括:HillTop算法、Topic-Sensitive PageRank算法、HITS算法等,本文不再展开。
6.3 网页反作弊和SEO
搜索引擎也有28的原则。头部的网页占了很大的点击量,这也意味着巨大的商业价值。
这里我们会提到SEO,先看看百度百科对SEO的定义:
搜索引擎优化也称为SEO,即Search Engine Optimization,就是了解各种搜索引擎如何进行搜索,如何爬取互联网页面,如何通过分析网站的排名规则来确定具体的关键词搜索。搜索引擎。结果排名技术。
搜索引擎利用搜索者容易引用的方法,有针对性地优化网站,提高网站在搜索引擎中的自然排名,吸引更多用户访问网站,提高网站的流量,提高网站的销售能力和宣传能力,从而提升网站的品牌效应。
道高一尺,魔高十尺,唯有魔能胜魔。
网页反作弊是搜索引擎需要解决的一个重要问题。常见的包括内容反作弊和链接分析反作弊。
网页内容作弊
比如在网页内容中加入大量重复热词,在标题/摘要等重要位置加入热词,用html标签作弊等,比如在网页内容中加入大量“隐蔽的角落”热词主题不相关的网页,增加等。强调html标签。
链接分析作弊
建立大量相互引用的页面,购买高排名的链接等,就是创建大量可以指向自己页面的其他页面,从而形成欺骗引用链。
6.4 用户搜索意图理解
用户模块直接与用户交互,接收用户的搜索词,准确理解用户的搜索意图。
事实上,用户的输入是多种多样的,口语化的,甚至是拼写错误的,不同背景的用户对同一个搜索词有不同的需求,使用无争议搜索词的目的也不同。
搜索词是:美食宫保鸡丁
这个搜索词质量比较高,但是还不清楚要不要找一家餐厅吃宫保鸡丁?还在寻找宫保鸡丁的食谱吗?还想了解宫保鸡丁的历史渊源吗?或者宫保鸡丁的相关评论?所以有很多情况。
搜索词是:你觉得我中午迟到了什么?
口语搜索词有错别字,可能涉及词的纠错、同义词转换等,以便找到准确的搜索词,进而明确搜索意图,召回网页。
全文摘要
搜索引擎是一个非常复杂的系统工程,涉及到很多算法和工程实现。本文旨在和大家一起简单梳理一下搜索引擎的基本组成和运行原理。这是一门科普文章。
搜索引擎中的每一个模块都不容易做好,也是互联网产品技术含金量的典型代表。深入研究一个模块将受益匪浅。