`
Fly_m
  • 浏览: 258080 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

使用Tika进行非结构化内容的读写-1

    博客分类:
  • java
阅读更多

    前缀时间在使用Jackrabbit作非结构化内容的存取,当问到当存取一个word文档时,jackrabbit能不能对word文档里面的内容作全文检索呢。回去查了一下相关的文档,是可以的,而且用的是一个叫Tika的工具。

    Tika原先是一个Lucene的子项目,即对内容作元数据抽取用。更多的时候,是对一个平时所用的文档类数据作信息的进一步读取,这些信息是隐藏在文档本身的。这就要求有一个统一的工具来做这些事情,而Tika就提供了一个统一的调用接口来完成这些工作。

    Tika通过一个parser和一个contentHandler来进行文档分析和处理,其中parser负责解析具体的文档,当解析到需要进行处理的时候,调用contentHandler进行解析内容的处理。contentHandler(org.xml.sax)是一个用于处理sax解析的程序接口,当parser解析到某些内容时(如节点之间的信息,以及节点本身的信息)时,便会根据需要去调用contentHandler的相关处理方法。即一个负责解析,一个负责处理,两者相互协作,最终将信息通过一定的手段返回回来。

 

    Parser是一个接口,对不同的文档进行处理时,需要寻找具体的解析器来实现具体的解析工作。Tika通过MimeType来实现对一个文档的具体识别工作,即识别出一个文档是什么样的类型,然后再根据类型寻找相应的parser。最后调用具体实现的parser来完成parse工作。

    ContentHandler也是一个接口,对不同的信息进行处理时,需要自己调用具体的信息处理类。一般来说,如果只关心文档内的内容(即有信息的地方),可以使用WriteOutContentHandler。这个handler将所以被解析到的信息通过一个output或write输出到调用者提供的输出流中,这样最终可以读取这个writer中的数据。例如,ParseUtils中的getStringContent(工具方法),即通过WriterOutContentHandler进行信息的读取,最终返回这些信息。

    除这些信息之外,还有一些信息需要在处理的过程中被解析和保存,比如一个文档的标题,作者以及contentType等。在tika中,这些信息被保存在一个叫Metadata的对象中。metadata保存了很多与具体文档相关的值,它以一个map的形式,保存相应的元数据信息值。如对于word,它会保存其中的Author,Keywords这些信息。这些信息对于用一些关键信息进行文档检索非常有用。

 

    看整个处理流程,可以用下面的图来表示:

tika处理流程

     在具体实现中,用到了大量的装饰器,将一个parser包装在另一个parser中,同时也是将一个contentHandler包装在另一个handler中,所以在进行程序定位时很麻烦。但简单点来说,还是将底层进行的parser进行上层包装来进行高级的信息解析,最后返回相应的信息。具体的代码逻辑实现,参考使用Tika进行非结构化内容的读写-2.

  • 大小: 53.7 KB
分享到:
评论

相关推荐

    tika-core-1.22.jar_tika_

    Apache Tika本产品包括在以下位置开发的软件Apache软件基金会。版权所有1993-2010大学大气研究公司/ Unidata该软件包含源自UCAR / Unidata的NetCDF库的代码。Tika服务器组件使用CDDL许可的依赖项

    tika-app-1.24.1.jar

    检测并提取来自上千种不同文件类型(如...除了用gui进行操作外,还可以在命令行界面中使用java -jar tika-app-1.15.jar --text .doc命令进行文本格式的转换,text为要转变的格式,.doc为你想要转变的文本的物理位置。

    tika-app-1.16.jar

    tika-app-1.16,java文档内容提取工具jar包,可提取office文档内容

    tika-python绑定到 Apache Tika REST 服务

    要使用这个库,您需要在系统上安装 Java 7+,因为 tika-python 在后台启动 Tika REST 服务器。- 特征 解析器接口(在 REST 之前向后兼容) 解析器接口使用 /rmeta 接口提取文本和元数据 或者,您可以将 Tika 服务器 ...

    tika 1.0最新版本

    tika最新版本,tika-app-1.0.jar,提取office和pdf文档内容

    tika-app-1.7.jar

    tika-app-1.7.jar

    tika-app-1.8

    最新tika1.8,可以帮助lucene的开发,提取文档的内容

    apache-tika-1.0-src.zip

    apache-tika-1.0-src.zip,tika 1.0版本 源码包,看孔浩的搜索引擎视频用到的。

    tika-0.5 jar包

    下载Apache的tika项目时发现网上没有现成的tika的jar文件,只能自己编译一个了。可能大家也会遇到这个问题。所以将编译好的jar包传上来于大家...其中包含了tika-app-0.5.jar,tika-core-0.5.jar,tika-parsers-0.5.jar

    apache-tika-0.8-src.jar

    apache-tika-0.8-src.jar 源码

    tika-app-1.14 文本解析文件内容抽取

    Tika是Apache下开源的文档内容解析工具,支持上千种文档格式(如PPT、XLS、PDF)。Tika使用统一的方法对各种类型文件进行内容解析,封装了各种格式解析的内部实现,可用于搜索引擎索引、内容分析、转换等场景。

    tika-app-1.19.1.jar

    tika-app.1.19.1.jar,轻松提取文本正文的工具。。。。

    apache-tika-1.2-src.zip

    apache-tika-1.2-src.zip

    tika-app-1.6.jar

    pache Tika 利用现有的解析类库 从不同格式的文档中(例如HTML PDF Doc 侦测和提取出元数据和结构化内容 功能包括: 侦测文档的类型 字符编码 语言 等其他现有文档的属性

    apache tika jar包

    Apache Tika 利用现有的解析类库,从不同格式的文档中(例如HTML, PDF, Doc),侦测和提取出元数据和结构化内容。  功能包括:  侦测文档的类型,字符编码,语言,等其他现有文档的属性。  提取结构化的文字内容。...

    tika-app-1.23.jar

    Apache Tika解析doc/docx/txt/xls等文件内容,可以很方便地将文档内容提取出来,方便做全文检索使用。

    tika-example:使用Apache Tika进行文件类型检测

    提卡示例 使用Apache Tika进行文件类型检测 使用检测项目中文件的类型(csv,xml等)。 一个有关我的即将发布的博客文章的项目。

    tika0.5基本jar包

    使用tika0.5提取内容的基本的jar包。

    tika提取文本内容

    tika 工程 简便获取文本的java工具

    apache-tika-1.2-src.zip_ tika-app-1.2_java poi word_tika-app-1.2

    tika 1.2 内容收集,包含了poi等工具,可处理word、pdf等文档

Global site tag (gtag.js) - Google Analytics