论坛首页 编程语言技术论坛

JavaEye3.0开发手记之三 - 狮身人面

浏览 26169 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-28  
粗看了一下,目前支持的数据库好像只有Mysql。
Features里描述的index及search的速度很有诱惑。
小白鼠就不当了,等它再长大些吧。
关注ing。
0 请登录后投票
   发表时间:2007-10-10  
怎么没有人解释这句话呢?
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;
0 请登录后投票
   发表时间:2007-10-13  
一、性能非常出色
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。


真的好恐怖啊
0 请登录后投票
   发表时间: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结合使用。

0 请登录后投票
   发表时间: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
0 请登录后投票
   发表时间: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版本,不便于跟进新版本;三是词库不能做到很大很全,对于专业性质较强的数据库内容(例如搜索“颐和园路东口”、“清华东路西口”等公交站点,“莱镇香格里 ”、“碧海云天”等楼盘名称),基于中文分词的全文索引经常搜索不出来任何内容,即使添加分词词库,也不会很全面。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics