欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ferret啊,为你欢喜为你忧。

程序员文章站 2022-03-15 17:53:32
...
非常非常奇怪的问题。一开始在mac下面用standard rails bundle + ferret/acts_as_ferret,一切正常。后来想引入rmagick,于是使用rmagick bundle + ferrect/acts_as_ferret,结果报错,server启动不起来。mail list上去问,没人搭理咱。

索性换到windows上,顺便开始测试网页的浏览器兼容性。把代码commit到svn,然后找台新装的windows xp sp2,安装ruby、rails、ferret、rmagick,然后checkout代码。启动server,报错说no such file to load -- acts_as_ferret (MissingSourceFile),但是acts_as_ferret分明就在vender/plugins下面。而且同一个team里面有的人有这个问题,有的人就没有。

我这里是把acts_as_ferret作为plugin安装的。原因么,一是觉得plugin可以随着project一起checkin到svn中,大家可以共享;二是因为我在开始使用ferret的时候,acts_as_ferret的gem安装是0.10版本(非常奇怪)。现在报着最后的希望把acts_as_ferret安装成gem,这次还不错,找到了0.41版本。然后启动server试试,一切正常了。

非常的不解,看上去安装成gem比安装成plugin更保险一些,可是为什么之后acts_as_ferret有这种问题?

另外顺带提一下ferret的中文分词器,前一阵子尝试去实现一个,找了一个java版的作为研究对象,得出的结论是很难。java里面把读进的每个字符都做了统一的处理,我可以很简单的知道一个document中那些是一个character。而c中就没这么简单了,如果编码是utf-8,那么一个中英文混合加阿拉伯数字的document中的character就是不定长的,就不知道从哪里断开了。而且据说有些c编译器处理宽字符还有问题。

唉,我不是c的高手,对字符集这个东西也没有研究。希望我上面的说法是错误的,不然真的很难写一个c的中文分词器咧~