搜索引擎的核心技术架构,大体包括以下三块,第一,是蜘蛛/爬虫技术;第二,是索引技术;第三是查询展现的技术;当然,我不是搜索引擎的架构师,我只能用比较粗浅的方式来做一个结构的切分。那么我们该怎么更好的理解呢,下面就由顺义搜索引擎关键词排名公司来给我们讲解吧!
1、蜘蛛,也叫爬虫,是将互联网的信息,抓取并存储的一种技术实现。
搜索引擎的信息收录,很多不明所以的人会有很多误解,以为是付费收录,或者有什么其他特殊的提交技巧,其实并不是,搜索引擎通过互联网一些公开知名的网站,抓取内容,并分析其中的链接,然后有选择的抓取链接里的内容,然后再分析其中的链接,以此类推,通过有限的入口,基于彼此链接,形成强大的信息抓取能力。
有些搜索引擎本身也有链接提交入口,但基本上,不是主要的收录入口,不过作为创业者,建议了解一下相关信息,百度,google都有站长平台和管理后台,这里很多内容是需要非常非常认真的对待的。
反过来说,在这样的原理下,一个网站,只有被其他网站所链接,才有机会被搜索引擎抓取。如果这个网站没有外部链接,或者外部链接在搜索引擎中被认为是垃圾或无效链接,那么搜索引擎可能就不抓取他的页面。
2、索引系统
蜘蛛抓取的是网页的内容,那么要想让用户快速的通过关键词搜索到这个网页,就必须对网页做关键词的索引,从而提升查询效率,简单说就是,把网页的每个关键词提取出来,并针对这些关键词在网页中的出现频率,位置,特殊标记等诸多因素,给予不同的权值标定,然后,存储到索引库中。
索引系统除了分词之外,还有一些要点,比如实时索引,因为一次索引库的更新是个大动静,一般网站运营者知道,自己网站内容更新后,需要等索引库下一次更新才能看到效果,而且索引库针对不同权重的网站内容,更新的频次也不太一样。但诸如一些高优先的资讯网站,以及新闻搜索,索引库是可以做到近似实时索引的,所以我们在新闻搜索里,几分钟前的信息就已经可以搜索到了。
3、查询展现
用户在浏览器或者在手机客户端输入一个关键词,或者几个关键词,甚至一句话,这个在服务端,应答程序获取后处理步骤如下
第一步,会检查最近时间有没有人搜索过同样的关键词,如果存在这样的缓存,最快的处理是将这块缓存提供给你,这样查询效率最高,对后端负载压力最低。
第二步,发现这个输入查询最近没有搜索,或者有其他条件的原因必须更新结果,那么会将这个用户输入的词,进行分词,没错,如果不止一个关键词,或者是一句话的情况下,应答程序会又一次分词,将搜索的查询拆成几个不同的关键词。
第三步,将切分后的关键词分发到查询系统中,查询系统会去索引库查询,索引库是个庞大的分布式系统,先分析这个关键词属于哪一块哪一台服务器,索引是一种有序的数据组合,我们用可以用近似二分法的方式思考,不管数据规模多大,你用二分法去查找一个结果,查询频次是log2,这个就保证了海量数据下,查询一个关键词是非常快非常快的。当然,实际情况会比二分法复杂很多,这样说比较容易理解而已,再复杂些不是我不告诉大家,是我自己都不是很清楚呢。
第四步,不同关键词的查询结果,基于权值倒序,会再汇总在一起,然后把共同命中的部分反馈回来,并做最后的权值排序。
记住,搜索引擎绝对不会返回所有结果,这个开销谁都受不了,百度也不行,google也不行,翻页都是有限制的。
再记住,如果你多个关键词里有多个不同品类冷门词,搜索引擎有可能会舍弃其中一个冷门词,因为汇总数据很可能不包含共同结果。搜索技术不要神话,这样的范例偶尔会出现。
这是三大部分,多说一点,其实还有第四部分。
用户点击行为采集和反馈部分
基于用户的翻页,点击分布,对搜索结果的优劣做判定,并对权值做调整,但这个早期搜索引擎是没有的,后面才有,所以暂时不列为必备的三大块。
此外,一些对搜索优化的机器学习策略,对易混词识别,同音词识别等等,相当部分也都基于用户行为反馈进行,这是后话,这里不展开。
关于第四部分,点击提权,我说这个词价值千金,我猜很多人并没理解。没理解就好,要不我要被一些同行骂死了。
以上是单指搜索引擎的工作原理,和一些技术逻辑,当然,只是入门级的解读,毕竟再深入就不是我能讲解的了。