你那不是搜索引擎
有很多人认为搜索引擎就是一个简单的搜索框加提交按钮,站内搜索就是搜索引擎……对此我非常无语,但往往混沌的思绪以及拙劣的言辞,限制我没办法完成扫盲工作。遂搜集了部分材料来彻底的阐述一下:
搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,并将处理后的信息显示给用户,是为用户提供检索服务的系统。
数据量达到亿、单次查询毫秒级、每日查询总数能支持千万级、数量庞大的服务器硬件和速度巨快的网络环境
中文分词:
不但但是中文,其他国家的文字也存在"分词",说到底就是"语言学"里面的一个非常重要的领域.国内一些有名大学和科研机构,都一直在从事中文分词的研究,这也属于计算机自然语言研究领域.在国内做得比较有名的中文分词研究的公司,就不得不提提天津市海量科技发展有限公司http://www.hylanda.com/),其前身好象就是国家语言研究机构.一些搜索引擎公司,在发展初期时,对分词技术的研究还不是特别深入时,都是去买人家的产品.好象GOOGLE最开始对远东地区的分词技术,就是从一家日本公司购买的,有中文简体,中文繁体,日文,朝鲜文等多种文字分词技术.但是,纯学术领域的中文分词和搜索引擎里面用到的中文分词还是有很大的不同.学术界的要求分词的准确率极高,但分词速度就比较低了;搜索引擎的重点是,在保证分词高速的情况下,尽量提高分词的准确率.所以,现在的搜索引擎公司,都基本上自己来做中文分词了.
网络爬虫:
是国内做搜索的软件工程师给它取的名子,国外叫SPIDER(蜘蛛).为啥叫爬虫呢?因为最开始做实验时,给软件工程师的机器配置不高,另外网络带宽也很小.当时测试时程序跑得很慢,就象个虫子缓慢地爬来爬去的……所以,大家就趣称为"爬虫".网络爬虫的程序是不好编写的,因为作为软件工程师,无论你再是如何聪明,你所想到的绝对没有你会遇到的情况多!互联网上让人奇特的事太多了….原来有位同事去抓MP3,结果有个MP3网站的开发人员,就给我们开了个玩笑,他把一个子目录给命名为3.mp3,结果爬虫就把一子目录当成一个MP3文件!爬虫自己光荣牺牲了……哈哈,找了很长时间才找到这个BUG.
后台索引结构:
其实和中文分词的算法和很有关系的,采用咋样的中文分词,那后面的索引也会受其影响的.整体的后台索引结构的基本思想就是:把查询结果预先给运算出来.当然这些运算出来的结果全部放到内存中,那样查询是最快的,但内存总量毕竟是有限的(物理硬件不够往往是搜索引擎软件工程师头疼的问题!),所以肯定必须有大批量数据是放在硬盘中去……那些数据放内存,那些数据放硬盘,这就是个概率问题了.对于那些搜索高频词的结果就放在内存中,低频词的结果当然就放在硬盘上.但是,一些低频词可能会马上变成高频词,这如何办?嘿嘿,没问题的,搜索引擎在后台索引结构中,都会有一个高速缓冲.高速缓冲的设计非常巧妙,在它中间保存着最新最热门的查询结果.


