Archive for the 'search' Category

searchblox–一个基于lucene的搜索产品

星期三, 十二月 8th, 2010

前两天在solr邮件组看到一封广告帖,一个叫searchblox的搜索产品可免费使用,好奇心驱使我简单了解并使用了一下。searchblox是基于lucene的搜索解决方案,现在的版本已经是6.1,看来也有些年头了。searchblox不是个开源产品,有免费的版本,也有收费的版本,看文档介绍,收费版本除了提供服务支持还多了复制功能。

twitter的新搜索架构

星期天, 十月 10th, 2010

当习惯于粗略浏览google reader中的未读条目后便似完成任务般的“全部标记已读”,我就经常性的错过不错的精彩条目,比如这篇 Twitter’s New Search Architecture。我是订阅了engineering.twitter.com的,但这并不影响我没有注意到它就把它mark过。今天看到这篇文章时,已经有别的网站将该文翻译成中文了,比如新 Twitter,新搜索,比如 新 Twitter,新搜索,我在这也就算是炒冷饭了。

zoie DocIDMapperImpl类实现分析

星期五, 七月 16th, 2010

有网友留言询问我对zoie的DocIDMapperImpl实现是否有了解。说实话,之前看zoie也只是大面上的,知道DocIDMapperImpl的用处,但没有仔细分析它的算法。就趁着夜深人静,把这个类好好琢磨了下。但我得承认,看这种伤脑筋的算法让我有些吃不消,下面就列出我对它的大致分析,如果有不恰当的地方,也望指正。

还是说下DocIDMapperImpl的作用吧。在zoie中,uid和lucene的docid有一一对应关系。从docid到uid的映射很简单,就是分配个maxdoc大小的数组,索引位置是docid,值是uid。这样做也是因为docid是从小到大自增的,大小总有限。但uid是long型的,使用数组反映射是不行了,一个直接的选择是使用hashmap。不过zoie为了节约空间,使用了更有效的算法,也就是下面的类。

实时检索系统Zoie实现分析

星期六, 五月 8th, 2010

Zoie是LinkedIn开源的基于lucene的实时检索系统,对于它的介绍及初步使用可参考我的上一篇文章“使用Zoie构建实时检索系统”。在初步研究并理解了Zoie的源码实现后,本文分析一下Zoie的实现。

使用Zoie构建实时检索系统

星期六, 五月 8th, 2010

Zoie是LinkedIn开源的实时检索系统,它本身用于LinkedIn的用户profile检索。且不说专业的搜索引擎,大多数的站内检索基本都不是实时的,一般都会有几分钟的延迟。但LinkedIn认为,用户profile信息的检索需要实时的效果,因为如果搜索结果不正确或不理想会很影响用户体验。所以,LinkedIn的Zoie实现了秒级别的实时检索效果。Zoie在LinkedIn跑了有两年多时间,所以这个开源项目可以说比较成熟的,这个项目提供了较为丰富的功能和工具,除了核心的API外,它还提供了管理和监控工具、嵌入jetty的Web server demo、一些实用的DataProvider等。对于社区类需要提供用户信息检索的系统来说,使用Zoie或许是个很不错的选择。