27

在 Tika 的网站上,它说(关于 tika-app-1.2.jar)它可以在服务器模式下使用。有谁知道如何在该服务器运行后发送文档和接收解析的文本?

4

3 回答 3

37

Tika 支持两种“服务器”模式。更简单和原始的是--serverTika-App的旗帜。JAX-RS JSR-311 server component功能更强大,但也是更新的,它是一个附加的 jar。

Tika-App 网络服务器使用起来非常简单。只需使用标志启动 Tika-App --server,并使用--port ###标志告诉它要监听的端口。然后,连接到该端口并发送一个文件。您将获得 html 版本。java -jar tika-app.jar --server --port 12345NetCat很好地解决了这个问题,类似的东西nc 127.0.0.1 12345 < MyFileToExtract会让你回到 html

JAX-RS JSR-311 服务器组件支持几个不同的 url,用于元数据、纯文本等。您使用 启动服务器,java -jar tika-server.jar然后使用输入文档对适当的 url 进行 HTTP 调用,您将获得资源背部。wiki 页面上有大量详细信息和示例(包括使用 curl 进行测试)

Tika App Network Server 相当简单,仅支持一种模式(提取到 HTML),通常用于测试/演示/原型制作等。Tika JAXRS Server是一个完全 RESTful 服务,它与 HTTP 通信,并且暴露范围很广蒂卡的模式。如今,这是通过网络和/或非 Java 堆栈与 Tika 交互的普遍推荐方式。

于 2012-09-02T06:09:32.347 回答
27

只是添加到@Gagravarr 的好答案。

在服务器模式下谈论 Tika 时,区分两个版本很重要,否则会引起混淆:

  • tika-app.jar 有 --server --port 9998 选项来启动一个简单的服务器
  • tika-server.jar 是使用 JAX-RS 的单独组件

第一个选项仅提供文本提取并将内容作为 HTML 返回。最有可能的是,您真正想要的是第二个选项,它是一个 RESTful 服务,它公开了 Tika 的更多功能。

您可以简单地从 Tika 项目站点下载 tika-server.jar 。使用启动服务器

java -jar tika-server-x.x.jar -h 0.0.0.0

-h 0.0.0.0 (host) 选项使服务器监听任何传入的请求,否则它只会监听来自本地主机的请求。也可以加上 -p 选项来更改端口,否则默认为 9998。

然后,一旦服务器启动,您就可以使用浏览器轻松访问它。它将列出所有可用的端点。

最后,要从文件中提取元数据,您可以像这样使用 cURL:

curl -T testWORD.doc http://example.com:9998/meta

将元数据作为键/值对返回,每行一个。您还可以通过添加正确的接受标头让 Tika 以 JSON 格式返回结果:

curl -H "Accept: application/json" -T testWORD.doc http://example.com:9998/meta

[2015-01-19 更新] 之前的评论说 tika-server.jar 无法下载。修复了这个问题,因为它确实以二进制下载的形式存在。

于 2015-01-18T04:27:49.180 回答
4

增强 Gagravarr 完美答案:

  • 如果您的文档来自 WEB 服务器 => curl -u "http:// myserver-domain /*path-to-doc*/ doc-name.extension " | 数控 127.0.0.1 12345
  • 如果文档有密码保护就更好了 => curl -u login :*password* "http:// myserver-domain /*path-to-doc*/ doc-name.extension " | 数控 127.0.0.1 12345
于 2013-06-18T16:15:37.663 回答