TikaのWebサイトには、(tika-app-1.2.jarに関して)サーバーモードで使用できると記載されています。このサーバーが実行されたら、このサーバーからドキュメントを送信し、解析されたテキストを受信する方法を知っている人はいますか?
Tikaは2つの「サーバー」モードをサポートしています。よりシンプルでオリジナルなのは、Tika-Appの--server
フラグです。より機能的ですが、より新しいものは JAX-RS JSR-311サーバーコンポーネント です。これは追加のjarです。
Tika-App Network Serverの使い方は非常に簡単です。 --server
フラグと--port ###
フラグを指定してTika-Appを起動するだけで、リッスンするポートを指定できます。次に、そのポートに接続し、単一のファイルを送信します。 HTMLバージョンが返されます。 NetCatはこれに適しています。Java -jar tika-app.jar --server --port 12345
の後にnc 127.0.0.1 12345 < MyFileToExtract
を続けた場合、htmlが返されます。
JAX-RS JSR-311サーバーコンポーネント は、メタデータ、プレーンテキストなどのいくつかの異なるURLをサポートします。サーバーをJava -jar tika-server.jar
で起動し、適切なHTTP入力ドキュメントのURLを入力すると、リソースが返されます。 wikiページ には、詳細と例(テストにcurlを使用することを含む)がたくさんあります。
Tikaアプリネットワークサーバーはかなりシンプルで、1つのモード(HTMLに抽出)のみをサポートし、テスト/デモ/プロトタイピングなどに一般的に使用されます。 Tika JAXRSサーバー は、完全にRESTfulなサービスで、 HTTP、およびTikaのさまざまなモードを公開します。これは、ネットワークを介して、および/または非JavaスタックからTikaとやり取りするための、最近一般的に推奨されている方法です。
@Gagravarrの素晴らしい答えに追加するだけです。
サーバーモードでTikaについて話すときは、混乱を引き起こす可能性のある2つのバージョンを区別することが重要です。
最初のオプションはテキスト抽出のみを提供し、コンテンツをHTMLとして返します。ほとんどの場合、本当に必要なのは2番目のオプションです。これは、Tikaの機能の多くを公開するRESTfulサービスです。
Tikaプロジェクトサイトから tika-server.jarをダウンロード するだけです。を使用してサーバーを起動します
Java -jar tika-server-x.x.jar -h 0.0.0.0
-h 0.0.0.0(ホスト)オプションは、サーバーが着信要求を待機するようにします。それ以外の場合は、ローカルホストからの要求のみを待機します。 -pオプションを追加してポートを変更することもできます。それ以外の場合のデフォルトは9998です。
その後、サーバーが起動すると、ブラウザを使用してサーバーにアクセスできます。使用可能なすべてのエンドポイントが一覧表示されます。
最後に、ファイルからメタデータを抽出するには、次のようにcURLを使用できます。
curl -T testWORD.doc http://example.com:9998/meta
キー/値のペアとして1行に1つずつメタデータを返します。適切な受け入れヘッダーを追加することで、Tikaに結果をJSONとして返すこともできます。
curl -H "Accept: application/json" -T testWORD.doc http://example.com:9998/meta
[2015-01-19の更新]以前のコメントでは、tika-server.jarはダウンロードできません。実際にはバイナリダウンロードとして存在するため、これを修正しました。
Gagravarrの完全な回答を強化するには: