自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(15)
  • 收藏
  • 关注

原创 SmartBox自动补全用户输入

用户在输入搜索关键词时,根据已经输入的部分,自动提示出后面可能需要输入的词,既减少了用户输入的劳动量,也可以提示用户当前有哪些备选,有效的降低输错的几率,提升搜索的体验。 在第一期中,我们做了一个汉字提示的功能,从User Log中提取出每天搜索频率最高的词,和这些词命中的搜索结果数,更新到服务器中,然后提供补全提示功能。数据每天凌晨增量更新一次,保证数据的实时性,相比其他产品的补全功

2009-04-25 11:23:00 978

原创 垂直搜索引擎的分布式计算

很久没有更新了,在07年下半年,我们对搜索引擎做了分布式的改造,现在已经在试运营,效果还不错,虽然还不太稳定,偶尔还有服务core dump的情况,但是基本上没出大的问题,但是从长远考虑,这次分布式架构的改造只是一次过渡,并不能应付长远的需求。而且目前的架构存在很大运维成本。2月份开始,我开始思考下一个版本的架构, 目前已具备一些雏形,先贴出来:Master进程负责Map/Re

2008-03-18 23:22:00 1131 1

原创 如何解决页面上的js错误“行2,字符1”

   做web开发的同事可能经常会遇到一种js错误,提示”行2,字符1“,这种错误是无法调试的,也无法跟踪到出错的具体代码。这个问题也困扰了很多人。   再做过大量的测试后,我们发现引起这个错误的根本原因还是网页中包含了一个不存在的js文件,本来网页中引用不存在的js文件是允许的,但是IE浏览器就会报js错误,再firefox和世界之窗等浏览器上都不会报错。而且有些机器的ie浏览器也不会报错,

2007-11-27 23:29:00 1926 3

原创 SUSE10下运行程序出错"GLIBCXX 3.4.5 not found"

     今天在suse 10下写了一个测试程序,使用了hash_map,重载了hash函数,编译通过。运行时报错,提示 :   " /usr/loca/lib/libstdc++.so.6: version GLIBCXX 3.4.5 not found"    想起上周有几个同事也遇到这个问题,我的解决办法如下 :    ldconfg -p|grep libstdc++   

2007-11-27 00:12:00 738

原创 应用与服务器评估模型

   业务部门总是在不断的抱怨,为什么我们的机器那么少,明年我要增加100台服务器.   规划部门则不断的再问"你们有100多台机器了,为什么还需要那么多?你们机器利用充分了吗?是否存在浪费现象?"   于是一场PK开始了.我们最近也面临这样的PK,又到了下一年服务器申请的时间了.   今天抽时间对搜索的资源做了一个评估评估模型:

2007-09-12 17:39:00 565 1

原创 千万级数据的全文检索搜索引擎(四)

    上篇文章介绍了全文检索系统的索引文件格式,那么这些索引是如何生成的呢?这篇文章我们介绍一下搜索系统索引的生成过程。     索引服务器大部分时间都在做一项工作:合并索引。索引是一段来组织的,每个段都包含了若干条索引记录。索引服务器不停的合并这些段,把小段合并成大段,把大段合并成更大的段。最终合并成一个段,然后做索引切换,把生成好的索引数据切换给搜索服务器使用。    整个合并的原理

2007-08-28 23:20:00 635

原创 千万级数据的全文检索搜索引擎(三)

   最近事情比较多,好久没更新了,今天晚上继续写一篇,通过这个系列说明一下行业垂直搜索引擎的实现原理。   提到搜索引擎,不得不说的就是索引,如果把搜索引擎比喻成一个人,那么索引就是它的大脑。   千万级数据的全文检索搜索引擎------索引。   我们用的这套索引格式和lucene的索引几乎完全一样,这里我们先介绍几个概念和数据类型。  (1)倒排索引(Invert Index

2007-08-23 21:56:00 1043

原创 千万级数据的全文检索搜索引擎(二)

   全文检索是一套比较复杂的系统,在介绍架构之前,需要介绍一些基本的模块。  千万级数据的全文检索搜索引擎--分词(一)二元分词    在我们的第一个版本中,使用的是二元分词,大概用了接近一年的时间,二元分词就是每相邻2个词做一次切分,不包含英文,英文单独切分。   二元分词一个缺点是索引比较大,有大量的冗余,带来存储和索引查找的压力  第二个缺点是无法搜索单字,这是一个比较

2007-08-18 23:57:00 704

原创 千万级数据的全文检索搜索引擎(一)

   我们做的是一个行业垂直搜索引擎,不同于商业搜索引擎,对于相关性方面没有花太多的功夫。   这套系统最早的原型是lucene,第一个版本也是java版的,后来发现到400w数据时,单机性能撑不住了,就开发了第二个版本,用C++编写,加入了一些电子商务的特性,灵活性有所下降,但是效率大大提升,目前可支撑1500w左右的商品数据。  系统的前台和上一系列的list系统基本相同,后台多了一个

2007-08-13 22:34:00 752 1

原创 千万级数据的分类搜索引擎(六)

运营部署和性能表现 部署:     分布了4个服务,分别用使用4个不同的Appid来标识,每个服务重复部署2~3个,防止单点失效,同时做负载均衡。总部署12个进程,使用了4台服务器,服务器内存4~6G,双CPU。                性能表现:单个服务在处理1千万数据时,平均吞吐25个/秒,系统总吞吐在120个/秒左右目前在PV为400W/天的情况下,表现良好,超

2007-08-08 22:24:00 511

原创 千万级数据的分类搜索引擎(五)

分类检索服务器Listkernel---系统模块组成图示:  服务管理模块:提供的统一的服务管理接口   Server管理模块:提供统一的Server接口  SimpleListKernel模块:实现了一个简单的按照一级类目分布的检索系统,负责全局线程调度和管理  线程管理模块:提供统一的线程启动,停止接口索引管理模块:提供统一的索引管理接口

2007-08-05 19:42:00 611

原创 千万级数据的分类搜索引擎(三)

搜索系统前台组件-------通用中转服务器Common Server     Common Server是一个支持高并发的通用协议转发服务器,实现了一个socket连接池,对长短连接分开管理,采用epoll边沿触发通信模型。comm server本身不做深入的数据包解析。只负责协议包的转发,所以效率非常高。每秒吞吐可达几千个。   Common server具有以下特点:    1.

2007-07-31 22:05:00 617 1

原创 千万级数据的分类搜索引擎(二)

搜索系统前台组件-------轻量级的WebServer    轻量级的WebServer是我们自己开发的一个轻量级网页服务器,实现了WebServer的一些最基本的功能,采用epoll模型处理网络通信,将客户的URL请求直接通过消息队列传递给后台的业务逻辑处理进程,吞吐率非常高,性能大概是Apache+CGI方式的3,4倍。整个流程如下:(1)WebServer接受用户请求(

2007-07-29 20:16:00 761

原创 千万级数据的分类搜索引擎(一)

     这套分类搜索引擎花了我2年的时间,经历过好几次的版本升级,终于完成了分布式的版本,实际运营接近一年,相当稳定,系统最高容量达到1300W数据,单机支撑800W左右的商品,单机吞吐超过30个/秒,系统可平行扩展,本周就扩容了一次。下面逐步说明这套系统的架构。一、搜索引擎的整体架构 系统包含以下部分:(1)轻量级WebServer:自己写的一个WebServer,高性能,大并

2007-07-27 00:07:00 1226

原创 编写缓存友好的程序

    由于CPU的处理速度和存储器的数据存取速度之间有着巨大的差异,而且随着硬件技术的发展,这个差异还会逐步加大。CPU的设计者在CPU和存储器之间设计了高速缓存,有的分开了指令缓存(i-cache)和数据缓存(d-cache)。有的没有区分,称为统一缓存。最靠近CPU的缓存称为1级缓存L1,在L1和主存之间还有二级缓存L2,有的系统还设有3级缓存L3。这些高速缓存具有极高的数据存取速度,只需要

2007-07-12 21:39:00 766 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除