Tika文本摘录
从任何文档中提取文本 Apache Tika
怎么啦?
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
许可证
麻省理工学院© 架子上