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

ferret索引,使用中文分析器时,存在内存泄漏

浏览 2218 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-11  
一共100万条待索引记录,前10万条没有任何问题。但一过这个数量,内存以每秒5m的速度攀升,之后就没有减下来过。
但,切换到ferret默认的StanderdAnalyzer,内存占用从开始,到结束,都很平稳。

软件环境:
       解析器:MultilingualFerretTools( http://svn.lingr.com/plugins/multilingual_ferret_tools/)
       ferret:0.11.5

不知道robbin有没有遇到这个问题。
   发表时间:2007-12-12  
这个分析器的确有严重的性能问题,曾经差点把我们服务器挂掉。分析器还是自己写吧,另外ActsAsFerret的机制也很不好,不要去用。自己基于ferret去写索引和查询的程序。
0 请登录后投票
   发表时间:2007-12-13  
robbin 写道
这个分析器的确有严重的性能问题,曾经差点把我们服务器挂掉。分析器还是自己写吧,另外ActsAsFerret的机制也很不好,不要去用。自己基于ferret去写索引和查询的程序。

我为aaf写了个增量索引的补丁,每次只做10万条,反复做10次。
这样基本解决了索引的memery leak 问题,至于以后的索引更新,到以后用到再说吧,至少目前不会有这个问题。

分析器也懒得再重新写了,有空了再说。

对于acts_as_ferret,我只用了它的索引制作功能,其他的update,insert都不会用它的。
因为,这个插件有一个很大的性能问题:
      aaf_configuration[:ferret].update(
        :key               => (aaf_configuration[:single_index] ? [:id, :class_name] : :id),
        ...................
      )
  这里,aaf默认的:key设置为对象的id,但这个:key在ferret里面是建议不使用的。据我测试,如果使用:key,会使索引速度慢100倍!
0 请登录后投票
   发表时间:2007-12-13  
重复提交,
0 请登录后投票
论坛首页 编程语言技术版

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