2

application/octet-streamApache Tika内に型のパーサーはありますか?解析できないストリームだと思います。

ODSドキュメント、MSドキュメント、PDFファイルを解析するだけです。new Tika( ).parseToString(file); それで十分のよう です。しかし、コンテンツタイプが検出されない場合に何が起こるか理解できません->application/octet-streamがデフォルトです。それらのタイプの1つであるドキュメントからテキストを抽出する機会がありますが、contentType検出器がそれらのタイプを検出しなかった場合。

サポートされている形式ではないことをユーザーに通知する代わりに、他に何を試す必要がありますか。

それとも、結果として得られるapplication/octet-streamコンテンツタイプは、これを読み取ることができないシグナルですか?または「これに対処する方法を自分で理解する必要があります」?

4

1 に答える 1

4

検出器がファイルが何であるかを知らない場合、application/octet-streamを返します

そして、検出器がそれが何であるかを知らない場合、Tikaはそれに適したパーサーを選択することができません。(最終的には何もしないEmptyParserになります)

可能であれば、検出と解析を行うときにファイルの名前を渡してください。これは、場合によっては検出に役立ちます。

Metadata metadata = new Metadata();
metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
ParseContext context = new ParseContext();

Parser parser = new AutoDetectParser();
parser.parse(input, textHandler, metadata, new ParseContext());

また、Tika Webサイトでサポートされている形式の部分をチェックして、使用しているドキュメントがパーサーがあるドキュメントであることを確認することも価値があります-http://tika.apache.org/0.9/formats.html

ドキュメントが現在サポートされていない形式である場合は、2つの選択肢があります(どちらも即時修正ではありません)。1つは、新しいパーサーの作成を支援することです(フォーマットに適したJavaライブラリーを見つける必要があります)。もう1つは、コマンドラインベースのパーサーを使用することです(xhtml生成を実行できるプラットフォーム用の実行可能ファイルを見つけて、それを配線する必要があります)

于 2011-04-01T09:31:07.823 に答える