如何在服务器模式下使用Tika

时间:2012-09-01 21:39:18

标签: apache-tika

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

3 个答案:

答案 0 :(得分:33)

Tika支持两种“服务器”模式。更简单和原始的是Tika-App的--server标志。功能越多,但也更新近的是JAX-RS JSR-311 server component,这是一个额外的jar。

Tika-App网络服务器使用起来非常简单。只需使用--server标志启动Tika-App,并使用--port ###标志告诉它要侦听的端口。然后,连接到该端口并将其发送到单个文件。你会得到html版本。 NetCat适用于此,类似java -jar tika-app.jar --server --port 12345后跟nc 127.0.0.1 12345 < MyFileToExtract会让你回到html

JAX-RS JSR-311 server component支持一些不同的网址,例如元数据,纯文本等。您使用java -jar tika-server.jar启动服务器,然后使用您的输入文档对您执行HTTP调用相应的网址我会把资源拿回去。 wiki page

上有大量的细节和示例(包括使用curl进行测试)

Tika App Network Server非常简单,只支持一种模式(提取到HTML),通常用于测试/演示/原型设计/等。Tika JAXRS Server是一个完全RESTful的服务,它会说HTTP,并暴露了各种各样的Tika模式。这是目前通常推荐的通过网络和/或非Java堆栈与Tika接口的方式。

答案 1 :(得分:17)

只是添加@ Gagravarr的好答案。

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

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

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

您可以在Tika项目网站上简单地download the tika-server.jar。使用

启动服务器
java -jar tika-server-x.x.jar -h 0.0.0.0

-h 0.0.0.0(host)选项使服务器侦听任何传入请求,否则它将只侦听来自localhost的请求。您还可以添加-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不能下载。修复了因为它确实以二进制下载的形式存在。

答案 2 :(得分:3)

加强Gagravarr的完美答案:

  • 如果您的文档来自WEB服务器=&gt;卷曲-u “http:// myserver-domain / * path-to-doc * / doc-name.extension ”| NC 127.0.0.1 12345
  • 如果文档受密码保护,那就更好了&gt;卷曲-u 登录:* *密码 “http:// myserver-domain / * path-to-doc * / doc-name.extension ”| NC 127.0.0.1 12345