搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

apache/tika

数据

从上千种文件类型中检测并提取元数据与文本,适合 Java 应用及 AI/RAG 数据管道。

4,133
1,037
Java
Apache-2.0
创建于 17 年前

项目介绍

Apache Tika 是 Apache 软件基金会的文件解析工具包,能识别文件类型,并从 PPT、XLS、PDF 等上千种格式中提取元数据和文本。它的核心价值是给 Java 应用提供统一的解析接口,不必为每种格式单独接入解析库。

Tika 4.x 针对智能体和检索管道增加了新能力:默认输出 Markdown、通过 -J / /rmeta 做包含嵌入文档的结构化递归提取、以独立 fork 进程隔离解析过程,让恶意或损坏文档只影响子进程而不拖垮服务。可选的 Claude、Gemini、OpenAI 视觉语言模型解析器用于处理 OCR 无法识别的文档。

仓库还附带可直接使用的智能体技能定义,包括 file-to-markdown(通过 tika-app 或 tika-server)和 file-to-markdown-docker(带 OCR 保证的容器化 Tika),它们是独立的,可以复制到任意智能体的技能目录中。

快速使用

最快的上手方式是命令行应用。从下载页获取 tika-app-<version>.zip,解压到一个目录(压缩包没有顶层文件夹),然后在该目录内运行 jar,以便加载同级的 lib/ 目录;单独运行 jar 会因 NoClassDefFoundError 失败。

java -jar tika-app-<version>.jar document.pdf        # Markdown(4.x 默认)
java -jar tika-app-<version>.jar --text document.pdf # 纯文本
java -jar tika-app-<version>.jar -J document.pdf     # 结构化 JSON

在 Java 中集成时,通过 Maven 引入解析器包。pom 类型的依赖会带入标准解析器集合:

<dependency>
  <groupId>org.apache.tika</groupId>
  <artifactId>tika-parsers-standard-package</artifactId>
  <version>4.x.y</version>
  <type>pom</type>
</dependency>

然后直接调用:

import org.apache.tika.Tika;

Tika tika = new Tika();
String text = tika.parseToString(new File("document.pdf"));
System.out.println(text);

多模块项目可在依赖管理中导入 tika-bom,确保各 Tika 模块版本一致;Gradle 使用 platform("org.apache.tika:tika-bom:4.x.y")。

从源码构建

构建需要 Java 17,并使用仓库自带的 Maven wrapper:

./mvnw clean install

Windows 上使用 mvnw.cmd。依赖 Docker 的集成测试会在未安装 Docker 时跳过。构建会产出可运行的 tika-app/target/tika-app-*.jar,可用 --help 试用。只构建单个模块时加 -am -pl :<module>。-Pfast 配置跳过测试、checkstyle 和 spotless,-T1C 启用并行构建。

使用约束

Tika 基于 Java 17。Tika 2.x 和 Java 8 支持已于 2025 年 4 月终止,各版本线的支持时间见 Tika 路线图。从 3.x 升级到 4.x 需要修改代码和配置:Java 17、Parser/Detector SPI 中使用 TikaInputStream、以 JSON 配置替代 tika-config.xml、带命名空间的元数据键,以及默认输出格式改为 Markdown。核心库和服务端各有迁移指南:核心库、Tika Server。

发行包包含加密软件(Bouncy Castle,用于解析加密 PDF),部分国家对加密软件的进口、持有或再出口有限制。Apache Tika 以 Apache-2.0 许可发布,子组件有各自的声明,列于 LICENSE.txt。

HotRepo 点评

Apache Tika 在 2026-11-05 的 Java 日榜上位列第 11,当天新增 2 个 Star;项目自 2009 年以来累计 4,128 Star、1,037 Fork。这是一个成熟、关注度平稳的项目,而不是快速升温的新仓库。4.x 转向 Markdown 输出、进程隔离和智能体技能,把长期存在的格式解析库重新定位为 RAG 和智能体管道的基础设施,对已经在使用 Tika 的团队来说值得关注。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。