日期:2014-05-16  浏览次数:20798 次

Lucene学习之使用Apache Tika进行文档内容抽取

在上一篇关于Lucene的博客中,介绍了Lucene的入门以及中文文件的搜索问题解决,其中使用的例子是以文本文件作为搜索的文档,在创建索引时使用了Reader读取文件。但是在实际的应用过程中,经常需要对各种各样的非文本文件的内容进行全文搜索。我们常用的除了txt、html、xml等文本格式的文档外,还有大量的例如pdf、word、ppt等非文本格式的文档,在对这些文档中的内容进行搜索时,就需要先抽取其内容,然后再跟进其内容创建索引,才能被正确搜索。Apache Tika 就是一款强大的文档内容抽取框架,它集成了各种文档解析器,能够识别大多数的文档,并且能够扩展其他的解析器,而且对中文的识别也较好。经过不完全测试,能够识别的文档格式如下:

  1. pdf文档
  2. doc、docx、ppt、excel
  3. txt、html、xml
  4. zip、tar

以上4类文档基本上包含了我们在创建一个资料库时所使用的文档格式。

这个框架的使用也非常简单,代码如下(使用tika-app-1.4.jar):

import org.apache.tika.Tika;

public class SimpleTextExtractor {
	public static void main(String[] args) throws Exception {
		// 创建 Tika实例
		Tika tika = new Tika();
		// 使用tika对文件内容进行抽取,对常用的文档格式进行测试
//		String filePath="D:/tikatest/test.pdf";
//		String filePath="D:/tikatest/test.doc";
//		String filePath="D:/tikatest/test.docx";
//		String filePath="D:/tikatest/test.txt";
//		String filePath="D:/tikatest/test.ppt";
//		String filePath="D:/tikatest/test.wps";
		String filePath="D:/tikatest/test.zip";
		String text = tika.parseToString(new File(filePath));
		System.out.println(text);
	}
}

??

需要下载Apacke tika的jar文件,下载链接:

http://mirrors.hust.edu.cn/apache/tika/tika-app-1.4.jar

?