`
provista
  • 浏览: 120134 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[Step By Step] Tika 使用介绍 (Tika 0.5)

    博客分类:
  • Java
阅读更多
1. Tika是什么
Tika是Lucene的一个子项目。
Tika是一个集合,用于处理各种格式化的文档,如doc(x), xls(x), ppt(x), jpg, pdf, etc. 它本身的core可以自动判别文件类型(AutoDetectParser类),也定义了统一的接口(the parse interface),外部接挂了各种处理不同格式文档的parser实现(implementation)。

2. Tika安装向导
    使用了Maven2的编译生成的Tika,其源码可以在http://lucene.apache.org/tika/下到。不过默认不提供生成的jar档案,需要自己用Maven2生成。因此如果读者没配置过Maven2,还需要首先去http://maven.apache.org/download.html下载Maven2,笔者当前使用的是Maven2.2.1。

    2.1 安装Maven2
    在Windows下,解压获得的apache-maven-2.x.x-bin.zip至你想要安置Maven2的目录,比如笔者解压至了"D:\Library\",那么D:\Library\apache-maven-2.2.1是Maven2的根目录
    去配置名为M2_HOME的环境变量为上述路径;如果是2.0.9版本则需注意路径最后一个字符不能是'\';继续配置名为M2的环境变量为"%M2_HOME%\bin";可选配置则是MAVEN_OPTS,可以把JVM的内存选项填上去:-Xms256m -Xmx512m。最后在Path系统环境变量中添加%M2%一项。
    如果还没有装JDK,当然需要把JDK给装上,并且设置了JAVA_HOME环境变量和Path环境变量中包括的%JAVA_HOME%\bin。
    经过上述步骤,在cmd中键入mvn --version看看是否正确输出。
    UNIX-like系统可以参考下载页的installation instructions,过程都差不多。
    2.2 生成Tika目标文件
    把Tika解压到某特定目录,比如笔者的D:\Library则根目录是D:\Library\tika-0.5。cmd进入该目录,执行mvn clean install,经过耐心等待,就可以在tika-core目录下发现新增了一个target目录,该目录下有一个jar文件tika-core-0.5.jar,这就是我们要的了。不过我们并未同时发现tika-app和tika-parsers下的对应jar,不过没关系,依葫芦画瓢,进入该二目录,各自执行mvn install,就可以得到各自的jar档案,分别是tika-app-0.5.jar和tika-parsers-0.5.jar。
    上述三个jar文件,tika-core-0.5.jar(附件下载)是tika的核心和接口,不包括parser实现,后者包含在tika-parsers-0.5.jar(附件下载)中,各类文档的解析类,实现了core中定义的接口。至于tika-app-0.5.jar,则是可执行的jar。下文将给出使用方法。

3. 初步使用
    无疑,作为一个程序(命令行)来使用是最直接最简单的。进入app的jar所在的目录,运行java -jar tika-app-0.5.jar -?看看都有哪些用法吧,这里就不全部介绍了。比如笔者随意拿了一个xls文档,运行java -jar tika-app-0.5.jar -t test.xls,就可以看到xls里的文本内容了,还是以类似表格方式列印在控制台的,中文也没有问题。

4. 程序调用
    主要的接口类就是org.apache.tika.parser.Parser
	void parse(InputStream stream, ContentHandler handler, Metadata metadata)throws IOException, SAXException, TikaException;

    parser接受一个流作为文档输入,一个org.xml.sax.ContentHandler作为内容格式输出。parser默认使用XHTMLContentHandler来产生XHTML输出。但通常需要指定一个ContentHandler来生成所需要的输出。Tika已经为我们实现了一些ContentHandler类,比如BodyContentHandler用来提取XHTML输出的body部分,以填入SAX事件供另外的ContentHandler处理,或者给出提取字符至输出流、writer或字符串。
ContentHandler handler = new BodyContentHandler(System.out);
parser.parse(System.in, handler, ...);

    以上片段使用系统标准输入作为文档,把提取的文本内容发至标准输出。
    另一个有用的方式是使用ParsingReader,解析文档,返回文本内容的字符流:
	InputStream stream = ...; // the document to be parsed
	Reader reader = new ParsingReader(parser, stream, ...);
	try {
  	  ...;                  // read the document text using the reader
	} finally {
		reader.close();    // the document stream is closed automatically
	}

    值得注意的是,maven生成的tika的jar包是有依赖于几个其他的包的,包括dom4j, xbeans, apache-poi, PDFBox等。在建立工程的时候需要引入相关的jar。
   
    最后附一个可运行的简单Demo:
public class TikaDemo {
	public static String PATH = "E:\\0104-0110工作计划.docx";
	public static String OUTPATH = PATH+".OUT";
	/**
	 * @param args
	 * @throws TikaException 
	 * @throws SAXException 
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException, SAXException, TikaException {
		Parser parser = new OOXMLParser();
		InputStream iStream = new BufferedInputStream(new FileInputStream(new File(PATH)));
		OutputStream oStream = new BufferedOutputStream(new FileOutputStream(new File(OUTPATH)));
		ContentHandler iHandler = new BodyContentHandler(oStream);
		parser.parse(iStream, iHandler, new Metadata(), new ParseContext());
		
	}

}
0
0
分享到:
评论

相关推荐

    tika0.5基本jar包

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

    tika-0.5 jar包

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

    tika-python绑定到 Apache Tika REST 服务

    Apache Tika 库的 Python 端口,可使用 Tika REST 服务器使 Tika 可用。这使得 Apache Tika 可作为 Python 库使用,可通过 Setuptools、Pip 进行安装,并且易于安装。要使用这个库,您需要在系统上安装 Java 7+,...

    tika-core-1.22.jar_tika_

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

    tika读取文件专用包

    tika读取文件所用jar包,包含各种文件类型所用jar

    tika 1.0最新版本

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

    tika提取文本内容

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

    tika+lucene完整jar包

    tika+lucene完整jar包:tika-app-1.20.jar、lucene-7.7.1

    apache tika jar包

    Apache Tika 利用现有的解析类库,从不同格式的文档中(例如HTML, PDF, Doc),侦测和提取出元数据和结构化内容。... 该项目的目标使用群体主要为搜索引擎以及其他内容索引和分析工具。编程语言为Java.

    tika.jar包

    可直接通过java -jar tika.jar运行该jar包 查看我们解析得到文本的结果

    apache中的tika包

    lucene's tika可以直接去网站下载噢。

    tika jar包

    tika读取文件所用jar包,tika-core-1.5.jar和tika-parsers-1.5.jar

    tika资源包

    使用apache tika可以很方便地将文档内容提取出来,方便做全文检索使用。

    Tika.in.Action.pdf

    Tika.in.Action.pdf

    tika:Apache Tika的镜像

    欢迎使用Apache Tika Apache Tika TM是使用现有解析器库从各种文档中检测和提取元数据和结构化文本内容的工具包。 Tika是的项目。 Apache Tika,Tika,Apache,Apache Feather徽标和Apache Tika项目徽标是The Apache...

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

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

    tika-app-1.16.jar

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

    Tika in Action

    tika in action for text extraction

    tika-app-1.7.jar

    tika-app-1.7.jar

    tika-app-1.8

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

Global site tag (gtag.js) - Google Analytics