Apache Tika:通用的内容分析工具

标签: apache tika 通用 | 发表时间:2013-01-19 17:30 | 作者:zbf8441372
出处:http://blog.csdn.net

项目介绍

Tika是一个内容分析工具,自带全面的parser工具类,能解析基本所有常见格式的文件,得到文件的metadata,content等内容,返回格式化信息。总的来说可以作为一个通用的解析工具。特别对于搜索引擎的数据抓去和处理步骤有重要意义。

Tika是一个目的明确,使用简单的apache的开源项目。下图是Tika诞生的一个历史过程。


Tika项目之初来源于Nutch项目(大家应该都不陌生),现在是 Lucene的子项目,所以也是来源于搜索引擎。其实Nutch这个项目的开发过程中,孕育了不少东西,应该都归功于Doug Cutting。我个人也是觉得这件事情很赞,要搞Nutch这样一个通用的搜索引擎,包括了全文索引和Web爬虫两大块内容,在开发过程中逐渐诞生出一些核心的周边产品,再孕育成子项目,包括hadoop,Lucene,Tika等等这些现代很主流,使用人群很广的通用项目,带给了IT界不少便利。我个人对此非常憧憬,觉得甚是美好。


从源码看功能

通过src里几个包和主要类,看Tika能干什么。跳过core包, tika-parsers展示了Tika能处理的文件类别和内容,


音频,图片,文本,各种格式的文件,tika都有对应的parser类来处理。而且Tika提供给了一些parser接口供扩展。 tika-bundle提供Tika结合OSGi容器的能力。 tika-app而则是一个在代码外直接使用Tika的jar包,可以在官网直接下载使用,提供gui和cmd使用方式,直观地体验这款产品。下面我会截图展示。


Tika架构

下图解释了Tika的架构以及关键零部件的主要设计目标:由一个解析器框架(中间),MIME检测机制(右侧),语言检测(左侧),和一个facade组件(中间部分的原理图)联系所有组件。外部接口,包括命令行和图形界面(下一节我会简单介绍),允许用户集成到脚本或者应用程序,并与Tika直接交互。在整个结构中,Tika的体系结构是可扩展的,新的解析器可以轻松地添加和删除。



Tika使用

直接使用Tika,只要java -jar tika-app-1.2 --gui即可启动,你可以把打开本地文件或者添加你要解析的url地址,甚至直接把各种文件拖入Tika,查看Tika的解析结果。大家可以直接下载jar包体验下,非常方便。在View内可以选择你想查看的内容(Metadata, text等)。 Tika对图片的处理主要是提供一些元信息,并不能分析出图片内的内容,所以图片形式的pdf文件自然是不能查看text信息的


如果是用命令行,类似的语法是这样的:

java -jar tika-app-1.0.jar --text document.doc
java -jar tika-app-1.0.jar --encoding=UTF-8 --text document.doc
java -jar tika-app-1.0.jar --metadata document.doc

想在别的工程中使用Tika,只要在maven项目依赖里添加Tika,new Tika的实例,然后直接调用Tika的解析parser类,即可获取到处理后的信息。给个最简单的例子:

import java.io.File;
import org.apache.tika.Tika;
public class SimpleTextExtractor {
  public static void main(String[] args) throws Exception {
    // Create a Tika instance with the default configuration
    Tika tika = new Tika();
    // Parse all given files and print out the extracted text content
    for (String file : args) {
      String text = tika.parseToString(new File(file));
      System.out.print(text);
    }
  }
}


总结

介绍Tika出于两个目的:

1. 感觉是一个通用,实用且易用的分析工具,可以与lucene,solr结合,天生服务搜索引擎

2. 感叹Nutch项目发展历史,Apache各种开源项目的紧密,自然,优美的关联性。

更多内容参看 《Tika in action》


(全文完)

作者:zbf8441372 发表于2013-1-19 17:30:18 原文链接
阅读:0 评论:0 查看评论

相关 [apache tika 通用] 推荐:

Apache Tika:通用的内容分析工具

- - CSDN博客推荐文章
Tika是一个内容分析工具,自带全面的parser工具类,能解析基本所有常见格式的文件,得到文件的metadata,content等内容,返回格式化信息. 总的来说可以作为一个通用的解析工具. 特别对于搜索引擎的数据抓去和处理步骤有重要意义. Tika是一个目的明确,使用简单的apache的开源项目.

Apache Tika命令注入漏洞挖掘

- - FreeBuf互联网安全新媒体平台
这篇文章将从一个Apache tika服务器的命令注入漏洞到完全利用的步骤. CVE是 https://nvd.nist.gov/vuln/detail/CVE-2018-1335. 由于Apache Tika是开源的,我能够通过分析Apache Tika代码来确定问题. 虽然命令注入漏洞通常很简单,但要实现完整的远程代码或命令执行需要克服一些障碍.

Apache Tika 1.9 发布,内容抽取工具集合

- - 开源中国社区最新新闻
Apache Tika 1.9 发布,此版本包括一些改进和 bug 修复,详细改进请看 更新日志:. Tika是一个内容抽取的工具集合(a toolkit for text extracting). 它集成了 POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面. 其次,Tika也提供了便利的扩展API,用来丰富其对第三方文件格式的支持.

Apache Shiro 介绍

- - CSDN博客推荐文章
什么是Apache Shiro?. Apache shiro 是一个强大而灵活的开源安全框架,可清晰地处理身份认证、授权、会话(session)和加密. Apache Shiro最主要的初衷是为了易用和易理解,处理安全问题可能非常复杂甚至非常痛苦,但并非一定要如此. 一个框架应该尽可能地将复杂的问题隐藏起来,提供清晰直观的API使开发者可以很轻松地开发自己的程序安全代码.

Apache Derby Papers

- -
Derby Type System (Note: if your browser shows HTML source for this page instead of displaying it, save the file locally with . It will prompt you to click on "Grant license to ASF for inclusion in ASF works", and this is the permission we need in place to host your contribution on the Derby web site..

Apache防止攻击

- - 小彰
为了防止恶意用户对Apache进行攻击,我们需要安装mod_security这个安全模块. mod_security 1.9.x模块的下载与安装. 下载地址: http://www.modsecurity.org/download/index.html. 建议使用1.9.x,因为2.x的配置指令与1.x完全不同,解压后进入解压目录,执行:.

Apache OpenOffice 3.4发布

- - Solidot
Apache OpenOffice的第一个版本v3.4正式发布. 主要新特性包括:改进ODF支持,包括ODF 1.2加密选项和新电子表格功能;改进Calc组件的数据透视表(Pivot Table)支持;原生支持SVG,增强图形如线帽和剪切变形;简体和繁体中文等原生语言支持;改进性能等. 在甲骨文将OpenOffice.org捐给Apache软件基金会后,OOo的命运曾存在许多争议.

Apache PDFBox 1.8.0 发布

- - 开源中国社区最新新闻
Apache PDFBox 1.8.0 发布了,该版本除了修复大量 bug 之外,还包含如下新特性:. PDFBox是Java实现的PDF文档协作类库,提供PDF文档的创建、处理以及文档内容提取功能,也包含了一些命令行实用工具. PDF 文档加密与解密. 与 Lucene搜索引擎的集成. 填充PDF/XFDF表单数据.

Apache Log4j 2.0介绍

- - CSDN博客推荐文章
Apache Log4j 2.0介绍. 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs. Apache Log4j是著名的Java日志框架之一,在早些年应用最广. 但近两年来,随着SLF4J和LogBack的兴起,很多流行的开源框架在日志模块方面逐步转移到SLF4J+LogBack上,Log4j日渐衰落.

Apache 的 MaxClients 與 MaxRequestsPerChild

- - SSORC.tw
對於 Apache 架設的伺服器,在遇到連線數問題上,以下參數是會考慮微調的. 不過遇到多個 VirtualHost 與連線變多時,需要適時調整. ServerLimit 與 MaxClients 是針對同時間最大連線數為多少,也等於是 Apache 程序數量,ps 一下就會有多少個 /usr/sbin/httpd 等.