深入浅出jackrabbit之十五 文档提取优化2.docx

/**
*author:ahuaxuan
*2009-10-22
*/

在上一篇文章中,我们讲到为什么要优化jackrabbit中的文档提取,同时也分析了进程模型和线程模型在分布式文档提取中的优劣。

在本文中,ahuaxuan将会介绍分布式文档提取的架构模型,以及它在整个非结构化数据库中的地位。 第二部分ahuaxuan将介绍几个用来提取文本的工具,然后将这些工具用在分布式文档提取中,以减轻jackrabbit的负担, 从这个角度看,本文是对上文的补充,这样从原因,到解决方案,以及所用到的技术工具基本上都涉及到了。

一, 分布式文档提取系统的结构模型。
首先来看一张文档提取系统部署的结构模型:

从上面一张图中可以看出每台lighttpd下面都挂着很多的flup, 之前我们讲过,文档提取系统是cpu密集型应用,而非io密集型应用,所以这里不用担心client->lighttpd->fastcgi这部分流程会出现瓶颈。

从进程模型上,我们可以得到另外一张图:

这个图表示,当一个提取任务发过来的时候, lighttpd会把请求交给flup处理,而flup会将这个任务分给一个子进程。这个子进程中有一些其他的字符串,比如catdoc, catppt等等,在文章的后半部分会介绍这些工具的作用。

而上面这张图是分布式文档提取系统在整个系统层次上的位置,其实它的主要功能就是分离计算,在下面这张图中,我们可以看到,index, extraction这样的高消耗cpu和内存的操作都从jackrabbit群组中分离出去了,将这些高消耗性能的非数值计算分离出去可以有效的提高主应用程序的稳定性和扩展性。

看过这三幅图之后,相信大家对分布式文档提取的在整套系统中的地位已经有了一定的了解。下面我们来看看一些常见的文档提取工具。

Xpdf(GNU General Public License (GPL), version2)
Xpdf是用来提取pdf中text的工具

pyPdf(modified BSD license)
pyPdf用来提取pdf中text的工具

Htmllib
用来提取html中的文本

UnRtf(GNU)
用来其他RTF文件中的文本

pyRtf(GPL & LGPL)
pyRTF目前只支持生成rtf文件

Catdoc(GNU Public License)
用来提取word2003的文本

Catppt(GNU Public License)
用来提取ppt2003中的文本

Xls2csv(GNU Public License)
将xls转成csv, 而csv其实就是纯文本,对于做索引来说csv和纯文本基本没有区别

others for 2003
还有就是一些收费的,就不帮他们做广告了

openxmllib(lxml)
GNU General Public License, Version 2.0 (GPL).
Openxmllib是用来提取office2007中word, excel, ppt中的纯文本的,不过需要注意的是它有一个缺陷,它提取出来的文本是无序的,也就是句子的顺序会被打乱,如果你只是做索引,那么这个特性对你来说没有影响,但是如果你想把提取之后的文档保存起来,以后作高亮只用,那么就必须扩展一下openxmllib,还好它比较简单,ahuxuan只用了个把小时就完成了改造。

说到这里分布式文档提取也就基本结束了,当然ahuaxuan并没有把一些细节全盘托出,因为考虑到在完成这项改造之前,同学们必须了解jackrabbit已有的文档提取逻辑,而如果已经了解了那些逻辑,那么我也没有必要将这些细节全盘托出了。阿弥陀佛。

时间: 2024-08-30 20:06:00

深入浅出jackrabbit之十五 文档提取优化2.docx的相关文章

深入浅出jackrabbit之十四 分布式文档提取

/** *author:ahuaxuan *2009-09-24 */ 前言: 本来针对jackrabbit这一系列的文章其实都是有顺序的,比如先讲索引的创建,然后讲索引的查询,等等,但是无奈总是有些横生的枝节,这些横生的枝节又让ahuaxuan有了一些新的想法.所以只能将这篇文章写到后面来了. 切入正题,今天这篇文章其实是对前面文本提取的一个补充.前面讲到文本提取的逻辑,逻辑有点小复杂,但是复杂的逻辑并不是这篇文章的关键,今天的话题是进程模型和线程模型,也许童鞋们会感到非常的奇怪,一个jack

开源力量公开课第三十五期-KVM性能优化

问题描述 课程题目:开源力量公开课第三十五期-KVM性能优化开课时间:2013年10月22日19:00-21:30现场或线上参课:现场参加(免费):北京市海淀区海淀西大街70号,3W咖啡二楼(海淀图书城籍海楼对面)线上直播(免费):邮件报名后将即时提供线上参课网址报名:发邮件到osf@osforce.cn,邮件标题:开源力量公开课第35期,邮件正文:在线或现场+姓名+公司+职位+联系电话邮件报名后,我们将即时回复线上参课网址若未收到不要前往现场的邮件,默认表示通过不接受未报名空降,拒绝放鸽子课程

C#发现之旅第十讲 文档对象模型

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 课程说明 本

文档型漏洞攻击研究报告

本文讲的是文档型漏洞攻击研究报告, 研究背景 由于反病毒技术快速发展及免费安全软件在全球的高度普及,恶意程序的传播变得越来越困难.自2013年以来,中国一直是全球个人电脑恶意程序感染率最低的国家. 但是随着漏洞挖掘及利用技术越来越公开化,导致越来越多的黑客更加倾向于利用常见办公软件的文档漏洞进行恶意攻击,特别是在一些APT(Advanced Persistent Threat)攻击中,更是体现得淋漓尽致.针对特定目标投递含有恶意代码的文档,安全意识薄弱的用户只要打开文档就会中招. 对于漏洞文档(

Delphi实现同类型文档自动合并

1.引言 最近,买了一张英语900句的学习光盘,因为没有相应的书面文字材料,就想自己将光盘中的文档提取出来,可一打开光盘,发现虽然每一句都有相应的详细文字材料,但每一句都单独存放在一个独立的RTF文档中(Sentence001.rtf至Sentence900.rtf),使用起来非常麻烦,于是就想将所有900句句型的文字材料合并到一起,即将900个独立的文档合并为一个文档. 2.解决方法 2.1 常规方法 首先想到的方法就是利用Word的文档合并功能,即将另一篇 Word 文档插入到当前打开的文档

操作PDF文档功能的相关开源项目探索——iTextSharp 和PDFBox

原文 操作PDF文档功能的相关开源项目探索--iTextSharp 和PDFBox 很久没自己写写心得日志与大家分享了,一方面是自己有点忙,一方面是自己有点懒,没有及时总结.因为实践是经验的来源,总结是提升的基础,所以无论怎样,自己都该反省一下.今天我主要是研究学习了两个PDF文档的相关类,iTextSharp 和PDFBox.我研究出发点是实现PDF文档的检索,需要提取PDF文档中的文字内容,然后通过正则匹配实现搜索. <类似Windows Search的文件搜索系统>中介绍的文件检索方法是

文档在产品设计中的价值

有很多人会问:"说两句话就可以了嘛,为什么还需要写文档这么麻烦呢?"当我们所有的人都在同一办公室工作时,随便喊两句就OK了,为什么还要用文档记下每一件事情这么麻烦呢? 然而,产品文档的价值在于.它能够给整个团队一个参考点,对于这个项目中所需要完成的工作.产品文档提供了一个很好的依据,定义好你的这类产品文档,才能保证在开发过程中,不会出现模凌两可类似的情况.当产品经理看到了一篇新的文章或者是一个新的想法时,都会考虑增加一个全新的功能.一个项目如果没有固定的目标,没有安排日程,没有预先计划

如何让Word 2013默认保存为Word 2003文档

使用Word2013创建的Word文档将保存为DOCX格式的Word2013文档,且Word2003软在未安装文件格式兼容包的情况下无法直接打开Word2013创建的DOCX文档.如果Word2013用户需要跟Word2003用户频繁交换文件,则Word2013用户可以将其默认的保存格式设置为Word2003用户能够打开的DOC文件. 在Word2013中设置默认保存格式为DOC文件的步骤如下所述: 第1步,打开Word2013文档窗口,依次单击"文件"→"选项"按

如何使用Word 2003打开Word 2013的DOCX文档

通常情况下,在Word2013中创建的DOCX格式的Word文档无法在Word2003中打开和编辑,因为Word2003无法识别扩展名为DOCX的Word文档.为了使DOCX文档能够在Word2003中打开和编辑,用户可以在安装Word2003的电脑中下载并安装Microsoft Office Word.Excel和Powerpoint文件格式兼容包.操作步骤如下所述: 第1步,下载并安装Microsoft Office Word.Excel和Powerpoint文件格式兼容包(下载地址:htt