在Tika的网站上,它说(关于tika-app-1.2.jar)它可以在服务器模式下使用。有人知道如何在运行文件后从该服务器发送文件和接收解析文本吗?
答案 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
Tika App Network Server非常简单,只支持一种模式(提取到HTML),通常用于测试/演示/原型设计/等。Tika JAXRS Server是一个完全RESTful的服务,它会说HTTP,并暴露了各种各样的Tika模式。这是目前通常推荐的通过网络和/或非Java堆栈与Tika接口的方式。
答案 1 :(得分:17)
只是添加@ Gagravarr的好答案。
在服务器模式下谈论Tika时,区分两个版本是很重要的,否则会导致混淆:
第一个选项仅提供文本提取并将内容作为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的完美答案: