MiscItems/2008-12-11

关于jpype/lucene 的痛苦

ghostwwl <[email protected]>
reply-to        [email protected]
to      python-cn`CPyUG`华蟒用户组 <[email protected]>
date    Thu, Dec 11, 2008 at 21:56
subject [CPyUG:73571] 关于jpype\lucene\paoding

缘起

这个星期已经折腾这个好几天了

需求
在python使用lucene对爬虫的爬回来的数据包做索引 提供给搜索引擎组 引擎组使用的java 要控制爬虫回访数据的:
  • 增量索引
  • 索引的修改 添加 和删除

解决办法一

良好 然后使用 jcc发现也没什么问题 安装过程中 出现最多的就是 修改makefile文件 如果你写过gcc 对make的语法 不是很陌 生 安装上应该不会有问题 多线程PyLucene.PythonThread 这个你就当做python的threading用 一般不会有问 题 为了对索引是pylucene的使用的内存控制 和减少磁盘的压力 我多线程的时候 多个线程公用一个基于内存的IndexWriter然后到 了一定量同步到 基于文件的writer

结果需求又来了
搜索组要求使用庖丁解牛分词 然后我就很努力的 想把 庖丁的源代码包 和lucene的源代码包放在一起 用pylucene-src的 通过修改makefile 来达到安装好pylucene后 就有了paoding 我可耻尝试了 gcj 和jcc两个版本
  • 因为对java我是小白 最后还是可耻的失败了 1个多星期 天天堆着makefile和java 痛苦可想而知

解决办法二:

发现 只要分好 跟多个jar 再次鄙视自己问这么低级的问题

速度只有那个的1/2不到 当然我同样多线程 这个时候又碰到一个恶心的问题 java的虚拟机报出 内存问题 堆内存不够用了 然后问问了zq 哎。。。。

来 没办法google找到解决办法

小结:

  1. 网上说的所谓的jpype不稳定 这个是不对的 如果出现问题
    • 第一看看自己的代码
    • 第二 看你调用的java的代码
    • 第三看jpype的手册
  2. 千万不要在调用jpype的时候在python里使用那个关闭jvm的那个函数 让python运行完自己关闭jvm 不然 。。。 我发现死在那里动不了 呵呵

依然存在的问题:


反馈

创建 by -- ZoomQuiet [2008-12-11 14:21:44]

MiscItems/2008-12-11 (last edited 2009-12-25 07:19:10 by localhost)