@shelf/tika-text-extract

中文文档
3.0.0发布于 2022/01/19MITCommonJS

使用Apache Tika从文档中提取文本

中文使用文档
文档目录15 节
  1. 怎么啦?
  2. 为什么?
  3. 安装
  4. 注意
  5. 使用
  6. 使用Java二进制文件的自定义路径执行Tika
  7. 在Java版本低于9的情况下执行Tika
  8. 执行Tika V1
  9. 注意
  10. API
  11. tte.startServer (artifactPath)
  12. tte.extract (fileInput)
  13. 发布
  14. 如何运行tika-文本提取
  15. 许可证

Tika文本摘录

从任何文档中提取文本 Apache Tika

CircleCI npm David npm

怎么啦?

Apache Tika™工具包可以从上千种元数据和文本中检测和提取元数据和文本 不同的文件类型(如PPT、XLS、PDF)。所有这些文件类型都可以被解析 通过一个单一的界面,使Tika对搜索引擎索引有用, 内容分析、翻译等等。

为什么?

这主要是为了在AWS Lambda环境中方便使用而构建的。

如果你想在node.js中使用Tika,你可以选择:

  • 生成一个CLI -不,非常低效的支付Java启动时间
  • 启动HTTP服务器
  • 使用Java ?

在CLI中生成一个Tika是非常低效的。 在node.js中使用Java API非常繁琐。 这个模块开始 Tika HTTP服务器 将文件流式传输到 并返回一个提取的文本字符串。

需要 java 出现在系统中。

安装

$ yarn add @shelf/tika-text-extract

注意

在tika-text-extract版本3中,默认使用大于2的tika-server。

使用

import {readFileSync} from 'fs';
import tte from '@shelf/tika-text-extract';

await tte.startServer('/tmp/tika-server-standard-2.2.1.jar');
const testFile = readFileSync('./README.md');

const extractedText = await tte.extract(testFile);

使用Java二进制文件的自定义路径执行Tika

const options = {executableJavaPath: '/bin/jre/java'};

await tte.startServer('/tmp/tika-server-standard-2.2.1.jar', options);
// The next command will be executed:
// /bin/jre/java -jar /tmp/tika-server-standard-2.2.1.jar -noFork

在Java版本低于9的情况下执行Tika

默认情况下,该库不支持小于9的Java版本。 为了在Java 8中使用它,将一个选项传递给 startServer 函数

const options = {alignWithJava8: true};

await tte.startServer('/tmp/tika-server-standard-2.2.1.jar', options);
// The next command will be executed:
// java -jar /tmp/tika-server-standard-2.2.1.jar -noFork

执行Tika V1

默认情况下,tika-text-extract版本3使用apache-tika大于2。 要使用小于2的tika-server,将一个选项传递给 startServer 函数

const options = {useTikaV1: true};

await tte.startServer('/tmp/tika-server-1.25.jar', options);
// The next command will be executed:
// /bin/jre/java --add-modules=java.xml.bind,java.activation -Duser.home=/tmp -jar /tmp/tika-server-1.25.jar

注意

如果在apache-tika中不使用此选项,则小于2。你会得到一个错误

API

可以通过设置env var来查看调试消息 DEBUG=tika-text-extract

tte.startServer (artifactPath)

参数: artifactPath -通往你的路 tika-server.jar 文件。

返回:服务器启动时解决的承诺。错误时拒绝。

tte.extract (fileInput)

参数: fileInput - Buffer, String, Stream 或者 Promise 要从中提取文本的文件。

返回:用提取的文本解析的承诺。

发布

$ git checkout master
$ yarn version
$ yarn publish
$ git push origin master --tags

如何运行tika-文本提取

下载Java,你可以用这些命令来完成:

mkdir java

docker run --rm -v "$PWD"/java:/lambda/opt lambci/yumda:2 yum install -y java-1.8.0-openjdk-headless.x86_64

移动 java 文件夹里面 tika-text-extract. 下载 tika-server 这是你想用的。你可以在一个 存档 之后可以运行如下命令:

docker run --rm \
-v "$PWD":/var/task \
-v "$PWD/java":/opt/java \
-v "$PWD/tika":/../layer/tika/ \
lambci/lambda:nodejs12.x basic-usage.handler

许可证

麻省理工学院© 架子上

版本与发布记录

@shelf/tika-text-extract 共发布 3 个版本,首次发布于 2021/06/22;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.0.0latest2022/01/194 年前
2.5.12021/06/225 年前
2.5.02021/06/225 年前

关于 @shelf/tika-text-extract 的常见问题

@shelf/tika-text-extract 是什么?

使用Apache Tika从文档中提取文本

如何安装 @shelf/tika-text-extract?

在项目目录运行 npm install @shelf/tika-text-extract,或使用 pnpm add / yarn add / bun add。

@shelf/tika-text-extract 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/shelf__tika-text-extract 是否存在。

@shelf/tika-text-extract 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@shelf/tika-text-extract 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=14。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@shelf/tika-text-extract 可以商用吗?

@shelf/tika-text-extract 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@shelf/tika-text-extract 还在维护吗?

最新版本 3.0.0 发布于 2022/01/19(4 年前);至今共发布 3 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/06/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。