小测Hyper Estraier性能

Hyper Estraier是一个由日本人用C写的搜索引擎,底层存储采用了作者另外一个 开源项目QDBM。
在功能特性上,Hyper Estraier是比较接近iSearch的,支持Attribue Search,N- gram,P2P(不是下片的P2P啊,就是可以有很多节点,节点之间可以通信),甚至 支持正则。。。BT的说。

想知道详细情况呢,可以造访HE的项目主页:http: //hyperestraier.sourceforge.net/,最早是听南瓜子(杭州口碑, 本搜团队)介绍的,不过不晓得南瓜子同学的blog地址

用larbin抓取了数百万网页,build了索引,做了一下性能测试, 测试数据简单总结如下:
一、html页面数共74,329M,约74G
$ tail -n 3 nohup.out
96      save/d00330
106     save/d00814
74329   save/

二、build完之后,索引文件约19G,加上其他数据一共约26G
1096    ./_attr
19044   ./_idx
5727    ./_text
2       ./_kwd

三、build非常耗时,这点数据量,估计花了72小时才build完,没准确计时,但 觉脚本运行了三天才跑完,服务器load average 2左右,不build索引的时候 load average在0.05左右,用的是这个shell:
for ((DIR=001;DIR<1000;DIR++))
do
   echo "Now gathering html in d00"$DIR
   rm tmp_index -rf
   find "/usr/local/larbin/save/d00"$DIR -type f | estcmd gather -fh -cl tmp_index - > /dev/null
   estcmd merge chn_html tmp_index > /dev/null
done
红色部分是关键,不知道“find命令查找html文件”是不是瓶颈,用he索引php和 mysql的html手册还是挺快的。

四、查询速度是亚秒级的,似乎有缓存,排序慢,计算相似度(similar page)很 慢,猜测是build索引的时候干的活儿少,所以查询的时候很多东西要临时计算
$ estcmd search -max 1 chn_html "yahoo ncp"
--------[38697275B113D56D]--------
VERSION 1.0
NODE    local
HIT     6
HINT#1  yahoo ncp       6
TIME    0.663100
DOCNUM  2514538
WORDNUM 17904280
VIEW    ID
本次搜索关键词是“yahoo ncp”,在251万个文档中命中6个,耗时663毫秒

$ estcmd search -max 1 chn_html "yahoo"
--------[60E89C8C81563449]--------
VERSION 1.0
NODE    local
HIT     59707
HINT#1  yahoo   59707
TIME    0.051943
DOCNUM  2514538
WORDNUM 17904280
VIEW    ID
$ estcmd search -max 1 chn_html "ncp"
--------[C5B1ED19D15AB56C]--------
VERSION 1.0
NODE    local
HIT     1362
HINT#1  ncp     1362
TIME    0.003320
DOCNUM  2514538
WORDNUM 17904280
VIEW    ID
第二次搜yahoo或ncp就快很多了,因此猜是有缓存的

HE的缺点:
1.没有像样的社区。
作者很猛很持久,搞了一系列开源项目,但似乎没有人跟他一起开发。有人贡献其 他语言的API,比如PHP的api就是。

2.文档简单但不详尽。
看得出来,这个日本哥们的英文也不咋地,对我们这种非英语母语的人来说是个好 事,文档很容易阅读,不过实施的时候有写细节需要连猜带蒙。文档里甚至有些错误。

3.某些功能特性缺失,比如stop word,同根词,group by(看http: //fuwu.cn.yahoo.com,随便搜个关键词,它会告诉你各个分类下有多少满足条件 的结果)。也没有分词,不过分词可以独立出来,也容易改他的源代码重编译。

4.代码结构一般。
C代码,流程控制比较扁平(充斥大量if,else),感觉没什么封装,也谈不上什么 设计模式。坏处是代码复用不够,会有些冗余,给hack带来一些困难。好处是比较 容易看明白,无需借助SourceInsight之类的东东。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值