django添加pylucene失败

lucene简单易用,而且默认的中文分词也还凑合。
本来用lucene做django的全文搜索引擎应当会是个不错的选择。
不过看似乎没看到什么项目这么做,在django的世界里似乎xapian更流行些。
做过了才知道,不是没人用,而是pylucene这东西根本就没法用:(。

今天花了一晚上将pylucene的全文搜素给做完,用django自带的测试服务器测试也没啥问题。
部署到服务器上就挂了。
本还以为服务器上的部署问题。
些了个简单的测试程序到服务器上又测试了一遍。
测试程序OK。
但django还是死活跑不了。

然后想起pylucene那个比较BT的问题。
pylucene由于是CGJ编译的,为了支持垃圾回收,如果在线程中使用pylucene需要继承PyLucene.PythonThread。

到网上找了下,还真是这个问题。
据说
"import PyLucene.PythonThread as thread" in django/utils/autoreload.py
对django做这样一个修改就可以正常工作了,不过mod_python下还是无法正常使用。

我用的是fastcgi,不过修改够还是无法正常工作:(。

各位打pyluence主意的朋友们以后得主意了,pylucene这东西有时候真的不是太好玩:(。
pylucene除了gcj版本外还一个jcc版本,这个版本是用c++对java进行wrap。
应当不会有类似gcj版本的问题,但你必须安装个java。

参考资料:
PyLucene JCC vs GCJ
http://ubuntuforums.org/showthread.php?t=593327

Comments are closed.