百度一下,你就知道! 搜索引擎大致的架构与工作的流程

  • 时间:
  • 浏览:266
  • 来源:无双科技

百度一下,你就知道"。这句耳熟能详的话语背后,说的就是搜索引擎。

除了从所周至的百度外,还有非常多的搜索引擎,尽管搜索引擎各式各样,但是他们的原理跟步骤都是差不多的,今天我们来简单地介绍介绍,一个搜索引擎大致的架构与工作的流程。


首先是元数据收集,没有数据,搜索什么?这个收集的方式有很多种,如果我们是搜索互联网上面的网页,那么我们可能需要一些爬虫软件去爬取数据,爬取到数据之后呢,我们要对关键信息进行提取,大部分网页上面都是HTML的结构,我们只需要正文的内容就行了,向一些导航栏呀,侧边栏呀,能够提取的有效价值并不高。如果我们只是建一个自己文章的搜索引擎,那就更加简单了,可以直接使用所有文章的文件内容,无需去实现爬虫。


接下来是索引,因为整个文章可能非常的长,我们不可能每次搜索都进行全文的对比,所以我们常常对文章进行分词,建立对应的关键字索引。网上已经有很多开源的工具分词工具可以使用,例如Java语言的word,有兴趣的话大家可以了解下。这里有一个简单的细节优化,有一些词是不用建立索引的,例如你,我,他,是之类的词语,太普遍了,价值并不是很高,反而是一些专有名词,如算法、数据结构、架构师这类的词语价值更高。这里我们可以简单存储为下面的格式。


我们简单地使用3张表进行存储,地址表、单词列表、还有单词与地址的关系表。每次有一个查询,我们就先找单词表,然后再找到单词与连接表中所有的关系,然后返回对应的地址列表即可。

接下来我们会有一个问题,我们搜索到很多很多的东西,如何展示给用户呢?例如某个关键词,可能搜索出10万个不同的网页,到底用户需要哪一个呢?这个时候就需要进行搜索排名了。常见的搜索排名有哪些呢?例如:

1.关键字的出现频率,出现的越多次,得分越高。

2.关键字出现的时机,越早出现得分越高,出现的越均匀,等分越高

3.内容的创建时间,这个比较适合新闻类的搜索。

当然还有很多种,例如有些搜搜引擎公司谁给的钱多,谁就排在前面。


基本上,用了实现了这三步,一个简单的搜索引擎就完成了。但这远远不够,在今天这个时代,我们肯定希望搜索引擎越来越聪明!用AI武装到牙齿!今天,我们也经常用神经网络算法来优化我们的搜索引擎,我们可以把用户的搜索的关键字作为神经网络的输入,把用户最终的点击结果作为神经网络的输出,这样子反复训练,我们的搜搜系统就会越来越智能!



当然,现实中,搜索引擎是比这个复杂地多了,毕竟有海量的查询跟存储都需要优化,索引、排名的算法各家也有各家的特色,后面我们可以讲一讲一些常见的内容。说点题外话,相信你读到这里,你会对现网百度的困境也多了一些理解,为什么进入移动互联网时代后百度越来越困难,主要表现在第1跟第4点,首先是百度能获取到的数据越来越少了,其次是用户使用百度的频率也降低,恶性循环,百度也越来越难以掌握用户的动机了。


猜你喜欢

“黑灰产工具”之“微信投票软件的原理与实现”

快到年底了,家里的微信群又热闹了起来,家族里有几个亲戚正在参加某评比活动的微信投票活动,所以七大姑八大姨天天在群里让我们帮着投票,家里人知道我是搞IT技术的就想着让我搞个刷票软

2019-10-22

好用到爆的超级实用的免费网站

很多朋友工作上班常常需要一堆简便工具,时间又找不到合适的,又要下载安装,这里小编总结了部分好用到爆的在线实用工具,收集起来,以备不时之需:迅捷PDF转换器:http://app

2019-10-22

全新内核PHP企业网站开发建设管理系统

PbootCMS是全新内核且永久开源免费的PHP企业网站开发建设管理系统,是一套高效、简洁、强悍的可免费商用的PHPCMS源码,能够满足各类企业网站开发建设的需要。系统采用简单

2019-10-21

SEO自查清单,为何你的网页内容没能获得排名?

果你对SEO很熟悉,你很可能听说过“内容为王”这句话。假设你已经完成了市场调查,确定了你希望优化的高流量页面,并编写了高质量的、包含了关键词的内容。然后你将内容放到网站上,可过

2019-10-17

RhaPHP thinkphp微信多公众号管理系统

RhaPHP是基于thinkphp微信第三方管理平台,微信公众号管理系统,支持多公众号管理,CRM会员管理,小程序开发,APP接口开发、几乎集合微信功能,简洁、快速上手、快速开

2019-10-15