web-dev-qa-db-ja.com

Tikaをサーバーモードで使用する方法

TikaのWebサイトには、(tika-app-1.2.jarに関して)サーバーモードで使用できると記載されています。このサーバーが実行されたら、このサーバーからドキュメントを送信し、解析されたテキストを受信する方法を知っている人はいますか?

25
Serge Anido

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とやり取りするための、最近一般的に推奨されている方法です。

33
Gagravarr

@Gagravarrの素晴らしい答えに追加するだけです。

サーバーモードでTikaについて話すときは、混乱を引き起こす可能性のある2つのバージョンを区別することが重要です。

  • tika-app.jarには、単純なサーバーを起動する--server --port 9998オプションがあります
  • tika-server.jarは、JAX-RSを使用する別個のコンポーネントです

最初のオプションはテキスト抽出のみを提供し、コンテンツを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はダウンロードできません。実際にはバイナリダウンロードとして存在するため、これを修正しました。

19
Ingo Renner

Gagravarrの完全な回答を強化するには:

  • ドキュメントがWEBサーバーから取得された場合=> curl -u "http:// myserver-domain/* path-to-doc */doc-name.extension "| nc 127.0.0.1 12345
  • また、ドキュメントがパスワードで保護されている場合はさらに優れています=> curl -u login:* password * "http:// myserver-domain/* path-to- doc */doc-name.extension "| nc 127.0.0.1 12345
3
Pr Shadoko