Tika是一个内容抽取的工具集合(a toolkit for text extracting)。它集成了POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面。其次,Tika也提供了便利的扩展API,用来丰富其对第三方文件格式的支持。
在当前的0.2-SNAPSHOT版本中, Tika提供了对如下文件格式的支持:
- PDF - 通过Pdfbox
- MS-* - 通过POI
- HTML - 使用nekohtml将不规范的html整理成为xhtml
- OpenOffice 格式 - Tika提供
- Archive - zip, tar, gzip, bzip等
- RTF - Tika提供
- Java class - Class解析由ASM完成
- Image - 只支持图像的元数据抽取
- XML
Tika的API十分便捷,核心是Parser interface,其中定义了一个parse方法:
public void parse(InputStream stream, ContentHandler handler, Metadata metadata)
用stream参数传递需要解析的文件流, 文本内容会被传入handler,而元数据会更新至metadata。
可以使用Tika的ParserUtils工具来根据文件的mime-type
来得到一个适当的Parser来进行解析工作。或者Tika还提供了一个AutoDetectParser根据不同的二进制文件的特殊格式 (比如说Magic Code),来寻找适合的Parser。
我写一个解析word的例子:
package com.kongjob.test;
import java.io.IOException;
import java.io.InputStream;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.microsoft.OfficeParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
/**
* Filename: TikaTest.java Description:
* @author: jason.he
* @version: 1.0 Create at: Oct 14, 2009 2:38:22 PM
*
* Modification History: Date Author Version Description
* 2009 jason.he 1.0 1.0 Version
*/
public class TikaTest {
public static void main(String[] args){
TikaTest tt = new TikaTest();
tt.testWordParser();
}
public String testWordParser(){
String result = "";
InputStream input = TikaTest.class.getResourceAsStream("/testWORD.doc");
try {
ContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
new OfficeParser().parse(input, handler, metadata);
System.out.println(handler.toString());
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (TikaException e) {
e.printStackTrace();
} finally {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
}
输出结果:
Sample Word Document
This is a sample Microsoft Word Document.
分享到:
相关推荐
1. Apache Tika项目介绍:Tika是一个Apache软件基金会下的开源项目,它的主要功能是能够解析各种格式的文档并提取其中的文本信息。Tika不仅支持主流的文档格式,比如Microsoft Office文件、PDF、HTML等,还能够处理...
这个"tika读取文件专用包"显然包含了Tika项目所需要的各种jar包,这些jar包支持处理多种文件类型,如PDF、DOC、XLS、PPT、HTML、图像等。下面将详细介绍Tika及其在处理不同文件类型时的关键知识点。 1. **Apache ...
3. `pom.xml`: Maven项目的配置文件,描述了项目的依赖关系、构建设置等,用于构建和管理Tika项目。 4. `README.txt`或`README.md`: 项目介绍和指南,提供安装和使用Tika的基本信息。 5. `LICENSE`和`NOTICE`: ...
本文将详细介绍Lucene 7.7.1与Tika的集成使用,帮助你构建高效的全文检索系统。 Lucene,作为Apache软件基金会的顶级项目,是一个高性能、全文本搜索库。它提供了索引和搜索文本的高级工具,支持倒排索引、布尔查询...
Tika是Apache的另一个项目,主要功能是检测和提取多种文件格式的内容。它集成了多个库,包括PDFBox、POI和iText,因此可以处理Word、PDF以及许多其他格式的文件。Tika提供了一个统一的API,使得从不同类型的文档中...
本文将详细介绍如何使用最新的Nexus版本搭建和使用MAVEN私服,以及如何实现jar包依赖。 **1. Maven与Maven私服** Maven是Apache软件基金会开发的一款项目管理和集成工具,它通过POM(Project Object Model)文件来...
集成POI和Tika到Lucene项目中,首先需要添加相应的依赖到项目构建文件,如Maven的pom.xml或Gradle的build.gradle。然后,可以编写代码来读取doc.xlsx文件,提取文本,再用Lucene的Analyzer进行分析,最后将分析后的...
Tika是Apache的一个子项目,专门用于解析各种格式的文件内容,如文本、图片、PDF等。在Lucene的上下文中,Tika常常被用来抽取非结构化数据中的文本,以便进行索引和搜索。这个0.4版本的Tika应用jar文件,意味着它是...
书中不仅详细介绍了Lucene的核心概念和技术细节,还通过实践案例展示了如何在实际项目中应用这些技术。 #### 二、Lucene基础知识 **1. 了解Lucene** - **信息检索术语介绍**:本书首先引入了一些基本的信息检索...
《大数据搜索与日志挖掘及可视化方案:ELK Stack(Elasticsearch,...通过阅读本书,IT专业人士能够掌握利用ELK Stack解决大数据问题的关键技能,提升数据驱动决策的能力,为企业或项目带来更高效的数据管理和深度洞察。
本文将详细介绍如何利用`tm-extractors-0.4.jar`库来实现这一目标,帮助开发者更高效地进行Word文档处理。 `tm-extractors`是一个Java库,专门用于读取和提取各种文档格式,包括Word文档。`tm-extractors-0.4.jar`...
本部分将结合以上技术,详细介绍一个完整的分布式电商项目的开发流程。 1. **项目需求分析**: - 用户登录注册。 - 商品浏览与购买。 - 订单管理与支付。 - 用户评价与客服咨询。 2. **系统架构设计**: - ...
chardet.jar可能指的是Apache Tika项目的一部分,Tika是一个内容分析工具,其中包含了字符编码检测的模块。chardet.jar可能是这个模块的实现,它也提供了类似的功能,即对未知编码的文本进行检测,确保文本可以被...
1. **Nutch的衍生项目**:Nutch不仅仅是一个独立的项目,它的研究和发展过程中孕育出了多个重要的开源项目,包括Hadoop、Tika和Gora。这表明Nutch在大数据处理和搜索引擎技术领域具有深远的影响。 - **Hadoop**:...
《Lucene实战(第2版)》基于Apache的Lucene 3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用Tika提取文本...
- Lucene入门、分词器、索引库操作、Tika工具使用、Solr原理及使用。 #### 五、JavaEE重量级框架应用开发 - **EJB 3.0标准**: 介绍企业级JavaBean的概念和技术特点。 - **JBoss、WebLogic服务器**: 应用部署和配置...