`

Tika 项目介绍

阅读更多

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 楼 hellostone 2009-10-17  
很好的东西

相关推荐

    Tika.in.Action D.Chris.A.Mattmann

    1. Apache Tika项目介绍:Tika是一个Apache软件基金会下的开源项目,它的主要功能是能够解析各种格式的文档并提取其中的文本信息。Tika不仅支持主流的文档格式,比如Microsoft Office文件、PDF、HTML等,还能够处理...

    tika读取文件专用包

    这个"tika读取文件专用包"显然包含了Tika项目所需要的各种jar包,这些jar包支持处理多种文件类型,如PDF、DOC、XLS、PPT、HTML、图像等。下面将详细介绍Tika及其在处理不同文件类型时的关键知识点。 1. **Apache ...

    apache-tika-1.0-src.zip

    3. `pom.xml`: Maven项目的配置文件,描述了项目的依赖关系、构建设置等,用于构建和管理Tika项目。 4. `README.txt`或`README.md`: 项目介绍和指南,提供安装和使用Tika的基本信息。 5. `LICENSE`和`NOTICE`: ...

    lucence7.7.1+tika

    本文将详细介绍Lucene 7.7.1与Tika的集成使用,帮助你构建高效的全文检索系统。 Lucene,作为Apache软件基金会的顶级项目,是一个高性能、全文本搜索库。它提供了索引和搜索文本的高级工具,支持倒排索引、布尔查询...

    java抽取word,pdf的四种武器

    Tika是Apache的另一个项目,主要功能是检测和提取多种文件格式的内容。它集成了多个库,包括PDFBox、POI和iText,因此可以处理Word、PDF以及许多其他格式的文件。Tika提供了一个统一的API,使得从不同类型的文档中...

    开发+MAVEN私服+nexus最新版+jar包依赖

    本文将详细介绍如何使用最新的Nexus版本搭建和使用MAVEN私服,以及如何实现jar包依赖。 **1. Maven与Maven私服** Maven是Apache软件基金会开发的一款项目管理和集成工具,它通过POM(Project Object Model)文件来...

    lucene对doc.xlsx操作包

    集成POI和Tika到Lucene项目中,首先需要添加相应的依赖到项目构建文件,如Maven的pom.xml或Gradle的build.gradle。然后,可以编写代码来读取doc.xlsx文件,提取文本,再用Lucene的Analyzer进行分析,最后将分析后的...

    lucene in action 2nd src part1

    Tika是Apache的一个子项目,专门用于解析各种格式的文件内容,如文本、图片、PDF等。在Lucene的上下文中,Tika常常被用来抽取非结构化数据中的文本,以便进行索引和搜索。这个0.4版本的Tika应用jar文件,意味着它是...

    Lucene in Action 2nd Edition MEAP Jun 2010

    书中不仅详细介绍了Lucene的核心概念和技术细节,还通过实践案例展示了如何在实际项目中应用这些技术。 #### 二、Lucene基础知识 **1. 了解Lucene** - **信息检索术语介绍**:本书首先引入了一些基本的信息检索...

    大数据搜索与日志挖掘及可视化方案 ELK Stack Elasticsearch Logstash Kibana 第2版

    《大数据搜索与日志挖掘及可视化方案:ELK Stack(Elasticsearch,...通过阅读本书,IT专业人士能够掌握利用ELK Stack解决大数据问题的关键技能,提升数据驱动决策的能力,为企业或项目带来更高效的数据管理和深度洞察。

    tm-extractors-0.4.jar

    本文将详细介绍如何利用`tm-extractors-0.4.jar`库来实现这一目标,帮助开发者更高效地进行Word文档处理。 `tm-extractors`是一个Java库,专门用于读取和提取各种文档格式,包括Word文档。`tm-extractors-0.4.jar`...

    大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程

    本部分将结合以上技术,详细介绍一个完整的分布式电商项目的开发流程。 1. **项目需求分析**: - 用户登录注册。 - 商品浏览与购买。 - 订单管理与支付。 - 用户评价与客服咨询。 2. **系统架构设计**: - ...

    jchardet.jar chardet.jar jchardet-1.1.zip

    chardet.jar可能指的是Apache Tika项目的一部分,Tika是一个内容分析工具,其中包含了字符编码检测的模块。chardet.jar可能是这个模块的实现,它也提供了类似的功能,即对未知编码的文本进行检测,确保文本可以被...

    Nutch相关框架视频教程 (1-20)(PDF)

    1. **Nutch的衍生项目**:Nutch不仅仅是一个独立的项目,它的研究和发展过程中孕育出了多个重要的开源项目,包括Hadoop、Tika和Gora。这表明Nutch在大数据处理和搜索引擎技术领域具有深远的影响。 - **Hadoop**:...

    Lucene实战

    《Lucene实战(第2版)》基于Apache的Lucene 3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用Tika提取文本...

    JavaEE学习课程分享精英强化班腾科.doc

    - Lucene入门、分词器、索引库操作、Tika工具使用、Solr原理及使用。 #### 五、JavaEE重量级框架应用开发 - **EJB 3.0标准**: 介绍企业级JavaBean的概念和技术特点。 - **JBoss、WebLogic服务器**: 应用部署和配置...

Global site tag (gtag.js) - Google Analytics