本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7593718
建立时间:2006年5月29日




[Ruby on Rails]让ruby on rails的搜索插件 acts_as_ferret支持增量索引
软件技术

lhwork 发表于 2007/1/20 13:53:59

刚才写的丢了,重写一遍, 简单的说为什么要让acts_as_ferret支持增量呢?由于它本身只支持在 activeRecord操作时才能增量而后台insert或是update的不能重新建立索引,另一方面呢,全量重新索引太慢了(在我的2G内存 p805d cpu的机子上不到10万的记录跑了一个多小时)所以: rails的插件acts_as_ferret支持增量索引. def idx_create Tname.find(:all, :conditions => “state=’I0A’”).each{|rec| Tname.ferret_index << rec.to_doc rec.state=’F0A’; rec.save! } end alias :idx_update :idx_create Tname表示rails中的Model(就是你要用ferret索引的表名啦) state是我用来保存记录是否已经索引的状态了。 idx_update就是update表用的。 删除的时候不能直接物理删除,而是要先设置state为删除状态(如:D0A)再使用 Tname.ferret_index.query_delete(query_for_self) query_for_self表示查询出来的要删除的索引,由于删除在我的程序中用不到没有详细看,参见:acts_as_ferret/lib/instanse_method.rb中的156行。 ps:最近几台机子换着用,没用blog的客户端,刚刚写了半天没保存(一向我都很小心的今天不知道怎么回事了),竟然不小心按了CTRL- R(vi中的撤消命令),竟然是刷新页面,第一次遇到这种情况(以前看人家blog上写到这种情况我还窃笑呢。。。)晕倒,不多写了贴贴代码就好了。


阅读全文(2069) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.313 second(s), page refreshed 144763689 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号