使用Tika提取包组件文件的元数据

时间:2014-05-19 17:54:32

标签: metadata apache-tika text-extraction

我正在尝试在命令行中使用Tika提取包组件文件的元数据,但我似乎只能输出包含包文件的元数据。示例:test_file.zip包含两个文件test1.doc和test2.doc。我想获取test1.doc和test2.doc的元数据,但无法弄清楚如何操作。

我试图运行这个:

java -jar tika-app-1.5.jar -m test_files.zip

但是只输出了test_files.zip的Content-Length,Content-Type和resourceName。

我也试过这个:

java -jar tika-app-1.5.jar -h test_files.zip

为每个组件文件输出HTML,包含在<div>中,带有类。“package-entry”,但元数据标签再次仅为包含包文件test_files.zip输出。我尝试使用-x参数而不是-h,根本没有参数,并得到完全相同的结果。

如何获取组件文件的元数据?我不介意从xhtml解析嵌入的元数据,但我无法想象如何将它注入xhtml或以其他方式输出。

任何帮助非常感谢。谢谢。

1 个答案:

答案 0 :(得分:0)

既然您已经说过只想使用tika-app jar,那么您的最佳选择就是

# Create a temp directory
cd /tmp
mkdir tika-extracted
cd tika-extracted
# Have Tika extract out all the embedded resources
java -jar tika-app-1.5.jar --extract $INPUT
# Process each one in turn
for e in *; do
   java -jar tika-app-1.5.jar --metadata $e
done
# Tidy up
cd /tmp
rm -rf tika-extracted

使用Java,您可以在ParserContext上注册自己的EmbeddedDocumentExtractor,并使用它来单独触发每个元数据的元数据提取