全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)

"简单谈谈与搜索引擎相关的内容."

很久没讲模型和算法了。我之前分享过围绕机器学习的常用算法,比如层次聚类模型,K-means聚类模型,线性回归模型,Logistic回归模型,朴素贝叶斯分类等。

四年前,我也领导过一个金融垂直搜索引擎产品,对搜索有一些简单的认识。所以我以后会尽量分享几个搜索推荐相关的算法。本文从搜索的基本原理入手,简单谈谈适合小白入门的搜索的基本内容。

01什么是搜索引擎

是的,说到搜索引擎,我想大家都能想到【百度】和【谷歌】。都是搜索引擎。

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图1)

比如上图,左边呈现的内容就是搜索结果列表。

其实还有一个搜索引擎,虽然大家一直在用,但是真的关注过吗?比如京东的商品搜索。COM:

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图2)

所以总结一下,搜索引擎主要包括两类:一类是像百度、谷歌这样的专业化搜索引擎,搜索是公司的主营业务;另一种是作为网站内部的功能模块,服务于主流业务。

目前国内专职搜索引擎公司不多,但以百度、搜狗搜索、360搜索为主,行业集中度已经很高。(下图仅供参考)

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图3)

但是网站内部的搜索功能基本上每个公司都在做。任何使用成熟互联网APP或网站的人都会提供搜索服务,搜索已经成为信息检索的主流手段。如果不信打开手机,美团,知乎,腾讯视频等。,搜索门户将在主页的核心位置提供。

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图4)

专业搜索引擎和站内搜索功能的异同?

差异:主要原因是两者的检索目标内容存在差异。专业搜索引擎更全面,目标是满足用户对信息(尤其是文本信息)的搜索诉求;站内搜索的主要搜索对象基本都是网站的服务内容。网站搜索视频,外卖网站搜索店铺,电商网站搜索商品。因为搜索的内容和不同网站的商业目标不同,每个网站内部的搜索逻辑肯定是不同的。

相同点:都是搜索引擎。核心技术和大框架基本一致。

02搜索服务的核心过程让我们来谈谈搜索服务的核心流程。

(1)数据采集+处理

对于专门的搜索引擎来说,数据和信息的获取主要是指爬虫的操作。也就是下图中sp的左边部分。

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图5)

你有没有想过百度可以实时返回你的查询关键词或者句子?你是怎么做到的?比如你在百度搜索【数据科学】的时候,是不是实时全网搜索?当然不是。就算有再多的计算资源,再快的计算效率,也不可能在短时间内告诉你可靠的结果。

所以为了解决效率问题,所有的搜索引擎都是提前把各个网站的数据爬下来,进行处理,等待用户的查询操作。

这里实际上有大量的数据处理工作要做。例如,需要删除网页的重复内容。例如,需要对所有网页进行文本解析和语义识别。比如需要建立文本索引,方便后续的关键词搜索等等。这里就不展开了。稍后我们将有机会一一分享。

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图6)

对于网站内部的搜索功能模块来说,数据获取其实是比较容易的,不需要抓取。都是公司数据库里现成的数据。我们以电子商务网站的搜索为例。我们要搜索的都是商品,主要处理商品数据就好了。商品数据一定要有商品列表,基础信息足够丰富,满足搜索的基础应用。相对于专业的搜索引擎,数据处理的难度要小很多。

(2)搜索查询分析

无论用户是否搜索,上面的第一个链接都是需要做的基础工作。当用户进行搜索操作时,需要处理的就是这个环节:查询解析。

所谓查询解析,就是理解和分析用户输入的搜索语句(query),以及它的意思。

比如你输入【数据科学家的主要工作是什么】,搜索引擎只是一台冷冰冰的机器。它不明白这句话是什么意思,怎么给你一个靠谱的答案?

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图7)

其实很多朋友都能想到直接根据关键词匹配~没错,大逻辑没错,但是当你真正落地的时候,你会发现很多细节。

比如关键词匹配,首先我得知道【一个数据科学家的主要工作是什么】有哪些关键词,对吧?这必须是分词。所谓分词,就是把查询分成常识性的关键词,这是典型的NLP(自然语言处理)的知识内容。比如上面分为[数据]+[科学]+[家]+[主] …或者[数据]+[科学家]+…这是完全不同的。

比如下面的【研究生物学】的细分就更五花八门了。与分词相关的NLP算法,后面会详细分享。这里就来抛个砖。

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图8)

再比如,在句子“数据科学家的主要工作是什么?”,有“是”“是”之类的词。关键词匹配会有影响吗?毕竟这个语气词没有什么重要性,在网页中出现的频率也很高。这涉及到核心关键词的提取,权重判断等等。

再比如下面的搜索【我和我的爷爷们】。可能是我打错了,但是query猜测我可能会搜索【我和我的父亲】,更正了。如果一轨搜索,是不可能得出这个结果的。

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图9)

综上所述,在查询解析的过程中,需要做的就是用户输入的语句,以及如何处理语句,让机器理解语句的含义,方便高效的搜索相关结果。

当然,基于关键词是比较基础的。现在,它正朝着知识图谱和问答的方向发展,这更符合真实的搜索需求。

(3)内容检索召回+排序

以上两个环节,一个环节是处理来自服务器的数据;一步是从用户端理解用户的搜索语句。

第三个重要环节来了:基于处理后的用户搜索内容,在处理后的数据库中搜索结果,找出所有相关的内容,并按照一定的规则进行排序。

这个内容是搜索引擎的核心内容。所以不同公司和网站的搜索引擎逻辑会有很大不同,排序逻辑就更不一样了。

应该很容易理解排序的必要性。理论上,我们是对匹配搜索内容的结果进行评分,分数高的排在第一位。用户肯定希望看到最相关或者我们希望用户看到最重要的内容在最前面,越往后用户看到的可能性越小。

于是,针对如何提高排名,诞生了一个特殊的行业和职位:SEO(搜索引擎优化),即提高相关内容网站的排名。对于淘宝卖家来说,要提高自己商品在淘宝天猫的搜索排名,优化各种关键词和指标;为了提高其百度搜索排名,网站还会对各种标题进行优化。

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图10)

所以为了保证网站的公平排名,防止大家钻空违背排序规则,各网站的搜索排序规则和评分权重往往都是保密的。

(4)搜索结果的呈现

最后一个环节主要是产品功能层面的内容,即对搜索返回的排序结果进行良好的产品化呈现。

比如知乎搜索[Viya]:

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图11)

首页(综合)模块是各类搜索结果的顶级**:包括讨论相关内容、问答相关内容、视频相关内容等。这种呈现模式是多类型网站的主流混合呈现模式。因此,对于搜索来说,每一种不同的方式也是一个独立的搜索引擎,然后将不同的结果合并成产品。

当然,随着技术的进步和用户体验的提升,搜索会有各种特殊的呈现方式。比如我们在百度搜索【北京青岛】:

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图12)

这里不再是按照上面的环节进行

seo运营教程这里不再按照上面的链接。

单***的检索,而是对某些特定类型的关键词进行了特殊化呈现,这属于在基础搜索服务上的补充。上面这个案例的规则应该是用户输入的query中包含2个城市名称,则触发该特型呈现。感兴趣的朋友可以自己试试【山东山西】、【中国日本】、【北京深圳青岛】等,都是没有特型的,哈哈。

特殊呈现对于用户体验来说是一个很大的提升,但是对于搜索引擎来说,需要不断的积累和增加,这是一个非常长期的事情。

当然,不仅搜索引擎有特色,其他网站的内部搜索也可以有特色。比如淘宝在下面搜索一个品牌名称,除了商品列表,还会增加旗舰店的大流量入口(虽然这是广告位)。

全网搜索引擎一般采用什么原理(结合搜索引擎的原理阐述)(图14)

关于搜索相关的技术内容,今天就来介绍这些。搜索涉及的内容非常大,不是一篇文章能说清楚的。本文的主要目的是对搜索的整体框架有一个简单的了解,了解搜索的基本工作原理。后面我们会一一展开,分享更多细节。也很有意思。

今天的文章到此为止。谢谢关注~