免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2477 | 回复: 1
打印 上一主题 下一主题

无聊 发一点关于lucene的东西 [复制链接]

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015亚冠之广州恒大
日期:2015-07-22 17:20:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-12 18:07 |只看该作者 |倒序浏览
开始 有一批数据 可能是每天24小时不停的有更新 也可能有 更改 要用lucene做全文索引

最开始用的pylucene后来发现pylucene里想把庖丁加进去 非常困难

然后使用jpype 这个可以在python中直接使用jar包

但是存在一个问题 他的内存无法回收 就是一个python里面用jpype起了一个jvm那么 这个jvm

只有等到这个python进程退出的时候才会释放 这个是不能忍受的

解决办法  使用多进程 嘿嘿 这个时候发现了 processing这个东西

然后没次的任务 都起一个进程  数据流有点复杂了

主进程(py) --> 子进程(py + jvm + java线程 +py子进程)

数据必须从子进程的 java线程传回给py子进程 然后Py子进程再传回给 py主进程

传进去的数据也差不多这个流程  

我使用processing.pipe 来进行主进程和子进程中的 文本通讯(比喻取数据get 写数据write等)

简单的通讯 为了稳定 每次沟通 都要等消息回执

这个时候面临最大的一个问题 就是主进程到子进程大数据量传输的问题  也许一天还几百万 +

稳定问题  还有挂点了 以后怎么断点运行问题  安全退出问题  开始我用的processing.Queue来

传数据 后来发现这是非常不明智的 看了下底层 他好像也是基于socket的 刚开始没问题

但是你24小时不停 跑个几天 有事就会丢数据 这个是绝对不允许的

这个是后 偶就想到了 直接子进程和 主进程间 用磁盘文件保存 gunzip的python对象 然后磁盘文件加锁

后来发现这个问题得到了 很好的解决 嘿嘿 起码非常稳定 虽然是很笨的方法

看看python跑出来的索引 做的2个小站

http://www.findart.com.cn  最开始是用java做索引 现在是python做索引
http://www.icdz.net  从开始就是python做索引 哇哈哈

论坛徽章:
0
2 [报告]
发表于 2009-03-13 08:51 |只看该作者
貌似你的站点有点意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP