我正在使用java,我正在尝试使用apache tika提取一些元数据,但我无法超出“主题”元数据的预期值。该文件是jpg图像。这是我的代码:
首先我正在解析这样的文件:
inputStream = new FileInputStream(fileToExtract);
Parser parser = new AutoDetectParser();
ContentHandler contentHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
parser.parse(inputStream, contentHandler, metadata, new ParseContext());
然后我试图打印这些:
metadata.get(Metadata.AUTHOR) --> "MyAuthor"
metadata.get(TikaCoreProperties.CREATOR) --> "MyCreator"
metadata.get(TikaCoreProperties.TITLE) --> "MyTitle"
metadata.get(Metadata.SUBJECT) --> **null**
metadata.get(TikaCoreProperties.KEYWORDS) --> **null**
所以,我得到了正确的所有值,我得到了主题的空值。元数据是我手动添加的(右键单击>属性,Windows操作系统)。
我做错了吗?
PS:请注意,“TikaCoreProperties.KEYWORDS”是根据apache tika文档检索主题的另一种方法。
答案 0 :(得分:0)
Apache Tika尝试在所有文件格式中返回一致的元数据。如果一种格式称为Author
,另一种Creator
,另一种Created By
和另一种Creator[0]
,Tika将这些格式全部映射到一致的密钥上并不重要。通常,这些密钥基于众所周知的外部标准,例如Dublin Core
如果要查看Tika应用于Microsoft Office文档的映射,您需要查看SummaryExtractor。如果您想知道Tika可以从给定文件中提取的所有元数据键和值,请使用tika-app
cli工具和--metadata
,或致电names() {{1}} 3}}获取Tika找到的元数据键列表。