- 浏览: 4822158 次
- 性别:
- 来自: 上海
博客专栏
-
robbin谈管理
浏览量:137114
文章分类
最新评论
-
xly1981:
领导者是团队的灵魂。深入一线的过程,包括代码review,能帮 ...
robbin谈管理:改造团队的经验(2) -
jiehuangwei:
像这种总结比较性的ppt文档可以多发啊
Web并发模型粗浅探讨 -
linux1308:
看完学习到了很多东西,感谢推荐!
推荐一篇很好的RoR部署方案性能评测 -
zweite:
直接对搜索的结果进行缓存是不是会更快一点呢
漫谈应用缓存的命中率问题 -
kaogua:
现在已经是ruby2.0了, 不知道这个的效率是怎么样的, 是 ...
Ruby作为服务器端应用已经成熟了
Sphinx的含义是“狮身人面像”,是古埃及的金字塔建筑,传说Sphinx是有翼的狮身女怪,她常叫过路行人猜谜, 猜不出者即遭杀害。
但是我这里说的Sphinx是一个高性能的搜索引擎:
http://www.sphinxsearch.com/
Sphinx是一个俄国人开发的搜索引擎,它的主要特点是:
一、性能非常出色
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。ferret也望尘莫及,更不要说lucene了。
二、和数据库集成性很好
Sphinx通过配置文件可以自行读取数据库信息做索引,不依赖任何外部的应用程序,并且可以作为一个daemon进程启动,支持分布式检索,并发响应性能很好。因此很多过去使用ferret的人因为并发检索的问题都改用Sphinx了。
三、可以做MySQL的全文检索
MySQL的数据库引擎是可插拔的结构,Sphinx开发了一个SphinxSE数据库引擎,可以在编译MySQL的时候直接编译到MySQL里面去,这样的话,可以在数据库级别支持高性能的全文检索,那么你可以以如下SQL方式去全文检索了:
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;
很棒吧。
四、RoR支持也很棒
有一个acts_as_sphinx插件,类似acts_as_ferret,集成到RoR里面很简单。
Sphinx目前可能存在的问题估计还是中文分词问题:
Sphinx支持UTF-8编码的分词,但是他自己的文档上面说仅仅支持英文和俄文的分词,因此我估计对中文分词可能还不能很好的支持。
总之,Sphinx是我们另外一个很棒的选择。
......
地球人都知道,mysql自带的full-text search不支持中文分词,不然full-text search对中国程序员来说早就不是个问题了。
不过国内有程序员做了个MySQL Fulltext 全文检索中文分词补丁
http://www.hightman.cn/index.php?myft
支持MySQL-4.0.x ,MySQL-5.1.x
有心人可以尝试与acts_as_fulltextable结合使用。
现在又多了一个
http://blog.s135.com/read.php?356
你用的是什么机器和什么数据做的测试呢?可以告知一下吗?
我觉得要看150w纪录的数据大小是多少?
2-4GB以内的文本检索,只得是2-4GB的加载源文件。还是加载后的索引文件?
成熟应用太少了,我反正是暂时不会使用的。
但是我这里说的Sphinx是一个高性能的搜索引擎:
http://www.sphinxsearch.com/
Sphinx是一个俄国人开发的搜索引擎,它的主要特点是:
一、性能非常出色
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。ferret也望尘莫及,更不要说lucene了。
二、和数据库集成性很好
Sphinx通过配置文件可以自行读取数据库信息做索引,不依赖任何外部的应用程序,并且可以作为一个daemon进程启动,支持分布式检索,并发响应性能很好。因此很多过去使用ferret的人因为并发检索的问题都改用Sphinx了。
三、可以做MySQL的全文检索
MySQL的数据库引擎是可插拔的结构,Sphinx开发了一个SphinxSE数据库引擎,可以在编译MySQL的时候直接编译到MySQL里面去,这样的话,可以在数据库级别支持高性能的全文检索,那么你可以以如下SQL方式去全文检索了:
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;
很棒吧。
四、RoR支持也很棒
有一个acts_as_sphinx插件,类似acts_as_ferret,集成到RoR里面很简单。
Sphinx目前可能存在的问题估计还是中文分词问题:
Sphinx支持UTF-8编码的分词,但是他自己的文档上面说仅仅支持英文和俄文的分词,因此我估计对中文分词可能还不能很好的支持。
总之,Sphinx是我们另外一个很棒的选择。
评论
30 楼
Stainlesssteel
2008-07-10
rainchen 写道
......
地球人都知道,mysql自带的full-text search不支持中文分词,不然full-text search对中国程序员来说早就不是个问题了。
不过国内有程序员做了个MySQL Fulltext 全文检索中文分词补丁
http://www.hightman.cn/index.php?myft
支持MySQL-4.0.x ,MySQL-5.1.x
有心人可以尝试与acts_as_fulltextable结合使用。
现在又多了一个
http://blog.s135.com/read.php?356
引用
国内已有的MySQL中文全文索引解决方案有两个:一是海量科技的MySQL5.0.37--LinuxX86-Chinese+,二是hightman开发的mysql-5.1.11-ft-hightman,两者都是基于中文分词技术,对中文语句进行拆分。但是,两者都有弊端,一是不支持64位操作系统;二是对修改了MySQL源码,只支持某一MySQL版本,不便于跟进新版本;三是词库不能做到很大很全,对于专业性质较强的数据库内容(例如搜索“颐和园路东口”、“清华东路西口”等公交站点,“莱镇香格里 ”、“碧海云天”等楼盘名称),基于中文分词的全文索引经常搜索不出来任何内容,即使添加分词词库,也不会很全面。
29 楼
willsonchan
2008-05-02
我来做一下小白鼠,服务器是Debian + Mysql 5 + Apache + PHP,2005年买的联想万全服务器,1G的内存;做了一个采集网站,数据库UTF-8编码,56万的数据,有中英文,对标题,来源,时间等做了全文检索,全文查询速度在0.0n秒内。
由于是采集网站,数据会一直更新,因此用了实时更新索引的方法,每5分钟更新一次delta索引,每天晚上merge一次。delta索引更新所需时间近似忽略。
只是花了两天时间整的,没有任何优化。
测试地址:http://www.haokanshu.cn/
欢迎sphinx用户一起探讨:willsonchan@gmail.com
由于是采集网站,数据会一直更新,因此用了实时更新索引的方法,每5分钟更新一次delta索引,每天晚上merge一次。delta索引更新所需时间近似忽略。
只是花了两天时间整的,没有任何优化。
测试地址:http://www.haokanshu.cn/
欢迎sphinx用户一起探讨:willsonchan@gmail.com
28 楼
rainchen
2007-10-15
最近出了个新的全文索引插件:acts_as_fulltextable
http://blog.wonsys.net/posts/26-our-first-plugin-acts_as_fulltextable/
其核心是直接使用mysql自带的full-text search。
据介绍,其作者并不是吃饱没事干,也不是为了挑战自我,而是在使用过了acts-as-ferret和acts_as_sphinx后不满意才“被逼”要出手DIY的。因为他们在使用acts-as-ferret时,大量写入会使其索引莫名出错;转用robbin在本篇里介绍的acts_as_sphinx,又时常发生sphinx的守护进程没有响应的问题。
另一个细节:
acts_as_fulltextable实现full-text index不是直接把模型需要字段的索引改为FULLTEXT INDEX,而是给需要搜索的model添加一个has_many :through 多态关联,统一把所有需要索引的模型都丢到一个fulltext_rows表里,以便实现跨表全文索引。
这样做的优点:
1.易部署:mysql的full-text search只支持MyISAM,如果原本项目是用InnoDB的也不影响,只要保证fulltext_rows表类型是MyISAM(默认用script/generate fulltext_rows model1 model2 model3 ...生成的就是,不需操心)
2.易扩展:即使增加新的模型时也能方便对接上。
3.跨模型:如常见的站内搜索“所有的”功能。
缺点:
需要占用多2倍以上的空间:fulltext_rows的数据 + mysql自身索引。
做搜索难,做全文搜索更难,做支持中文的全文搜索更是难上加难,要老外来做中文全文搜索则完全是final fantasy!
地球人都知道,mysql自带的full-text search不支持中文分词,不然full-text search对中国程序员来说早就不是个问题了。
不过国内有程序员做了个MySQL Fulltext 全文检索中文分词补丁
http://www.hightman.cn/index.php?myft
支持MySQL-4.0.x ,MySQL-5.1.x
有心人可以尝试与acts_as_fulltextable结合使用。
http://blog.wonsys.net/posts/26-our-first-plugin-acts_as_fulltextable/
其核心是直接使用mysql自带的full-text search。
据介绍,其作者并不是吃饱没事干,也不是为了挑战自我,而是在使用过了acts-as-ferret和acts_as_sphinx后不满意才“被逼”要出手DIY的。因为他们在使用acts-as-ferret时,大量写入会使其索引莫名出错;转用robbin在本篇里介绍的acts_as_sphinx,又时常发生sphinx的守护进程没有响应的问题。
另一个细节:
acts_as_fulltextable实现full-text index不是直接把模型需要字段的索引改为FULLTEXT INDEX,而是给需要搜索的model添加一个has_many :through 多态关联,统一把所有需要索引的模型都丢到一个fulltext_rows表里,以便实现跨表全文索引。
这样做的优点:
1.易部署:mysql的full-text search只支持MyISAM,如果原本项目是用InnoDB的也不影响,只要保证fulltext_rows表类型是MyISAM(默认用script/generate fulltext_rows model1 model2 model3 ...生成的就是,不需操心)
2.易扩展:即使增加新的模型时也能方便对接上。
3.跨模型:如常见的站内搜索“所有的”功能。
缺点:
需要占用多2倍以上的空间:fulltext_rows的数据 + mysql自身索引。
做搜索难,做全文搜索更难,做支持中文的全文搜索更是难上加难,要老外来做中文全文搜索则完全是final fantasy!
地球人都知道,mysql自带的full-text search不支持中文分词,不然full-text search对中国程序员来说早就不是个问题了。
不过国内有程序员做了个MySQL Fulltext 全文检索中文分词补丁
http://www.hightman.cn/index.php?myft
支持MySQL-4.0.x ,MySQL-5.1.x
有心人可以尝试与acts_as_fulltextable结合使用。
27 楼
wzh1008
2007-10-13
一、性能非常出色
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。
真的好恐怖啊
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。
真的好恐怖啊
26 楼
jiaxiang12-04
2007-10-10
怎么没有人解释这句话呢?
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;
25 楼
linginfanta
2007-09-28
粗看了一下,目前支持的数据库好像只有Mysql。
Features里描述的index及search的速度很有诱惑。
小白鼠就不当了,等它再长大些吧。
关注ing。
Features里描述的index及search的速度很有诱惑。
小白鼠就不当了,等它再长大些吧。
关注ing。
24 楼
fxsjy
2007-09-28
robbin,您好,我的MySQL中有一个表是utf-8编码,数据中有中文也有英文。
我在sphinx.conf中的设置为charset_type = sbcs,发现可以搜索到我要得结果,但是也有些结果并不含我输入的关键词。
后来,我又设置为charset_type = utf-8,结果发现只能检索到英文关键词了。
所以,想向你请教一下如何配置sphinx.conf文件才能处理中英混合的语料呢?
谢谢!
我在sphinx.conf中的设置为charset_type = sbcs,发现可以搜索到我要得结果,但是也有些结果并不含我输入的关键词。
后来,我又设置为charset_type = utf-8,结果发现只能检索到英文关键词了。
所以,想向你请教一下如何配置sphinx.conf文件才能处理中英混合的语料呢?
谢谢!
23 楼
jecray
2007-09-27
这么强啊
22 楼
liuzongan
2007-09-21
请问一下,robbin
sphinx在windows 下安装是不是需要Microsoft Visual C/C++ Studio .NET 2003 or 2005这个平台?谢谢
sphinx在windows 下安装是不是需要Microsoft Visual C/C++ Studio .NET 2003 or 2005这个平台?谢谢
21 楼
joyjiang
2007-09-19
引用
"150万条记录一两分钟就索引完毕" ---太恐怖了 每秒能处理12500条? 回想Lucene才多少..
你用的是什么机器和什么数据做的测试呢?可以告知一下吗?
20 楼
geszJava
2007-09-18
索引速度如果有150w rec/min,那么是相当的快,lucene的中文文档索引通常是1.8w rec/min,不过貌似robbin使用的应该是英文文档把.英文文档索引速度当然是很快的.
19 楼
geszJava
2007-09-18
检索速度貌似不是特别强啊,lucene 50G的全文检索,通常也只需要0.0x秒.
18 楼
linhong_1001
2007-09-16
C++的玩意,为什么要和lucene比呢?
17 楼
RyanPoy
2007-09-14
引用
150万条记录一两分钟就索引完毕
我觉得要看150w纪录的数据大小是多少?
引用
2-4GB以内的文本检索速度不到0.1秒钟。
2-4GB以内的文本检索,只得是2-4GB的加载源文件。还是加载后的索引文件?
16 楼
cjyzpcl
2007-09-14
liyao20050101 写道
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟
好强啊,这么的搜索引擎,大家多研究研究。!!!
真的 很强! 试用。。。
好强啊,这么的搜索引擎,大家多研究研究。!!!
真的 很强! 试用。。。
成熟应用太少了,我反正是暂时不会使用的。
15 楼
liyao20050101
2007-09-14
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟
好强啊,这么的搜索引擎,大家多研究研究。!!!
真的 很强! 试用。。。
好强啊,这么的搜索引擎,大家多研究研究。!!!
真的 很强! 试用。。。
14 楼
cinderella
2007-09-14
[color=darkred][/color]楼主你好,请教一个问题可以吗,我初学hibernate,在作练习时遇到一个问题,我用的是MyEclipse,在建连接数据库文件时总是有问题,我作的是jTDS连接,开始没有问题就是作到:Schema Details窗口时,选第三项:Ddisplay the selected schemas 然后点Add 不知道为什么总是报错:Error while trying to login to database: Network error IOException:Connection refused:connect 我的数据库用的是SQLserver2000 个人版本,我试了很多次可就是不行,可别人的电脑上就可以,不知道是不是有什么地方设置的不对呀,请楼主指点一下!!谢谢哟
13 楼
zengcuoan
2007-09-13
测试对html的防范
<font color="red">我是红色吗?</font>
<font color="red">我是红色吗?</font>
12 楼
zengcuoan
2007-09-13
如果博客评论较多,最新发表的评论显示在第一页吗?
11 楼
jonson
2007-09-12
有没有比较数据啊。
测试 环境都一样吗?
对于中文搜索会性能有影响吗?
有没有权威点的测试 数据呢。
可以的话系统的做个比较啊
和lusence什么的
测试 环境都一样吗?
对于中文搜索会性能有影响吗?
有没有权威点的测试 数据呢。
可以的话系统的做个比较啊
和lusence什么的
发表评论
-
《松本行弘的程序世界》推荐序
2011-07-21 13:47 15266在流行的编程语言中,ruby是一个比较另类的存在,这是因为大多 ... -
从Rails聊聊小公司的研发团队建设
2011-03-23 10:49 37216首先分享一点数据吧: JavaEye的PV到了140万了,一 ... -
Ruby作为服务器端应用已经成熟了
2009-11-17 14:55 15937JavaEye网站在过去的Ruby on rails实践当中, ... -
基于资源的HTTP Cache的实现介绍
2009-09-05 00:27 17055我们都知道浏览器会缓 ... -
请注意Rails2.3自带的memcache-client有性能问题
2009-03-23 18:05 14475Rails2.3版本发布了,这个版本内部的改动非常大,相关介绍 ... -
监视Rails进程内存泄漏的技巧
2008-12-30 21:56 10958Rails应用比较容易遇到的两类性能问题:一类是Rails执行 ... -
ruby MBARI大补丁性能评测报告
2008-12-23 12:19 5070JavaEye之前的新闻ruby内存泄漏的罪魁祸首 - 幽灵指 ... -
在top监视窗口显示Rails当前正在执行的请求URL
2008-12-01 14:15 9857这是一个从PragDave的博客上面学来的技巧,很实用,很co ... -
对Ruby VM的GC的思考
2008-09-02 23:41 8977Ruby虽然是动态脚本语言 ... -
推荐一篇很好的RoR部署方案性能评测
2008-07-08 11:55 9639今年年初的时候,我写了一篇RoR部署方案深度剖析的文章,分析了 ... -
Ruby和Rails的缺点
2008-06-25 21:08 17403有人说,robbin你说了那么多RoR的优点,你啥时候说说Ro ... -
Skynet --- ruby的类Google Map/Reduce框架
2008-06-02 00:39 8295Skynet是一个很响亮的名 ... -
rmmseg-cpp - 简洁高效的ruby中文分词程序
2008-05-27 00:47 11234我在前一篇文章向大家 ... -
使用libmmseg实现Ruby的中文分词功能
2008-05-24 21:43 11326用Ruby on Rails开发web2.0网站的人都知道,r ... -
mod_rails尝鲜
2008-04-13 14:32 8080Passenger(俗称mod_rails)是 ... -
Lighttpd和RoR安装配置的疑难解答
2008-03-07 11:09 14847之前写过一篇在Linux平 ... -
JavaEye网站的RoR性能优化经验谈
2008-01-20 16:11 18444JavaEye网站从2006年9月11 ... -
RoR部署方案深度剖析
2008-01-14 03:10 14778RoR的部署方案可谓五花八门,有Apache/Fastcgi方 ... -
RoR网站如何利用lighttpd的X-sendfile功能提升文件下载性能
2008-01-12 17:45 10254传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应 ... -
Ruby为什么会受程序员的欢迎?
2008-01-07 20:08 15752孟岩最近写了一篇博客 ...
相关推荐
### JavaEye3.0开发手记之开发环境搭建详解 #### 一、开发环境搭建概述 随着JavaEye3.0开发计划的启动,本篇文章将详细介绍如何为该项目搭建高效的开发环境。开发过程中不仅需要考虑软件的选择,还需要针对操作...
NULL 博文链接:https://ago520.iteye.com/blog/814571
NULL 博文链接:https://ago520.iteye.com/blog/754087
【JavaEye论坛热点 - 2008年11月 - 总第6期】是2008年11月JavaEye论坛上讨论的热点话题汇总,包含了多个关于Java和软件开发领域的讨论主题。以下将对部分主题进行详细解释: 1. **领域模型的价值与困境** - 领域...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了深入学习Java,了解并掌握其API(应用程序接口)以及使用高效的开发工具是至关重要的。下面,我们将详细探讨Java学习网站、API手册、...
JavaEye新闻月刊2009年3月第13期内容涉及了当时软件开发领域内的一系列重要话题,包括IBM拟收购Sun Microsystems公司的新闻报道、Java社区对此的看法以及各种编程语言、开发工具和技术的新动态。 首先,新闻月刊...
9. **移动开发**:随着Android的崛起,Java在移动开发领域的应用也可能是热点话题之一。 10. **面试与职业发展**:Java程序员的面试技巧、职场经验分享、职业规划等内容,对于求职者和开发者都有参考价值。 通过...
【JavaEye论坛热点推荐 - 2009年09月 - 总第16期】 这期JavaEye论坛的热点推荐涵盖了多个Java相关的技术话题,包括JDK7的新特性、HTTP缓存、Android开发、Java编程面试问题、Hibernate缓存、网页数据存储设计、热...
Jsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mhtJsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mht
JavaEye+技术架构是针对Java开发领域的一种综合技术框架,旨在提高开发效率,优化系统性能,以及提升软件的可维护性和扩展性。该框架可能包含了多个层次和组件,以满足现代企业级应用的需求。以下是对JavaEye+技术...
1. **Spring Framework 3.0 M2发布**:Spring Framework 3.0的M2预览版发布,引入了许多新特性,进一步强化了对Java 5的支持,同时在并发处理方面进行了扩展。这标志着Spring框架在功能和性能上的又一次提升,为...
JavaEye热点阅读是JavaEye论坛推出的2009年2月特辑,旨在为Java学习者和开发者提供最新的知识及行业动态。这份资料包含了多个Java相关的主题,包括但不限于并发编程、开源项目、设计模式、框架应用以及软件开发实践...