多语言展示
当前在线:1709今日阅读:75今日分享:44

如何搭一个搜索引擎:[3]搜索引擎基本原理

本经验介绍一下搜索引擎的最基本原理,对于有编程经验的人来说应该不难理解。其实不懂搜索引擎的人也可以通过一些工具很快速地搭建起一套很专业的搜索引擎来,但是理解了搜索引擎背后的基本原理后,在使用的过程中,对一些问题的理解可以更深入,看得更透彻一些吧。
一、搜索引擎背景介绍
1

发展史:1) Archie: 1990年FTP资源搜索,搜索引擎鼻祖2) YAHOO:第一代:1994年 分类目录3) excite:第二代:1993年 文本检索4) Google or Baidu: 第三代:1998年 超链分析

2

垂直搜索引擎:特点:•资源的稀缺性•结构化信息•结果精准•社区化属性通用搜索引擎市场份额已经被瓜分殆尽的情况下,做通用型搜索引擎投入大、产出小,不如专业垂直类搜索引擎有前途,在垂直领域做深做细。

3

百度的发展:

二、搜索引擎架构
1

整体架构图:搜索引擎由蜘蛛Spider、索引indexer、检索Searcher组成,一般复杂的搜索引擎会在上游增加策略,如Ranker专门负责排序的模块,query查询分析模块

2

什么是索引:    索引是搜索引擎能够快速从海量的数据中快速找到需要的文档的前提,索引的基本原理就是对无序数据的有序化,就像书的目录一样可以方便查找。    索引背后的数据结构是基于二叉树或者hash,保证了海量数据能够在O(logn)或者O(1)的时间复杂度内找到。如:mysql就是基于B+树的数据结构,减少数据查询时访问磁盘的次数,提高查询效率。

3

倒排索引:适用于搜索引擎的索引结构

4

百度搜索引擎检索架构:index: 搜索引擎索引数据BS:基本搜索引擎单元,下游即索引数据BC:基本控制单元,合并BS的结果,作一些cache、索引分层等策略AC:高级控制单元,排序策略GSS:百度Aladdin策略DA:查询query分析US:合并传统网页搜索结果和aladdin结果UI:负责网页UI处理,合并搜索广告BWS:百度web service,类似于apache或者nginx

三、搜索引擎的需求满足
1

通过对查询日志的分析,总结出搜索引擎需求满足的几个基本因素,搜索引擎效果的改进都是基于如下几个因素基础上进行的。

2

需求满足的一些常用技术手段:1)反垃圾、反作弊策略:对一些重复、作弊、低质的网页进行识别、打压、降权等2)query分析:对用户的查询串进行各种分析,如:纠错、意图识别、同义词替换、query改写、term重要性分析等操作,为后续的排序等策略提供特征。3)排序策略:结合query分析结果+字符串匹配权重+网页的基本因子等一系列特征,对检索返回的集合进行排序,把优质的网页呈现出来

四、从搜索引擎看SEO
1

—权重外链、用户反馈->权威性

2

—站点优化:title、anthor、内链、服务稳定性、关键词密度、内容相关性

3

—优化长尾词:长尾词竞争少,好优化,大量的长尾积累下来,流量也是很可观的

4

—大量优质原创内容:内容为王

5

—不要作弊,从用户的角度出发把网站做好

五、参考资料、书籍推荐
1

—《搜索引擎:原理、技术与系统》

2

Mysql—索引:http://blog.codinglabs.org/articles/theory-of-mysql-index.html

3

http://baike.baidu.com/view/262.htm

推荐信息