Java Apache Tika,无法检索';受试者';元数据值
我正在使用java,我正在尝试使用ApacheTika提取一些元数据,但是我无法提取“subject”元数据的预期值。该文件是一个jpg图像。这是我的密码: 首先,我像这样解析文件:Java Apache Tika,无法检索';受试者';元数据值,java,metadata,apache-tika,Java,Metadata,Apache Tika,我正在使用java,我正在尝试使用ApacheTika提取一些元数据,但是我无法提取“subject”元数据的预期值。该文件是一个jpg图像。这是我的密码: 首先,我像这样解析文件: inputStream = new FileInputStream(fileToExtract); Parser parser = new AutoDetectParser(); ContentHandler contentHandler = new Bod
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操作系统)
我做错什么了吗
注意,“TikaCoreProperties.KEYWORDS”是根据ApacheTika文档检索主题的另一种方法。ApacheTika尝试返回所有文件格式的一致元数据。如果一种格式调用它
作者
,另一种格式调用它创建者
,另一种格式调用由创建的,另一种格式调用它创建者[0]
,Tika将所有这些都映射到一个一致的键上。通常,这些密钥基于众所周知的外部标准,如Dublin Core
如果您想查看Tika应用于Microsoft Office文档的映射,您需要查看。如果您想知道Tika可以从给定文件中提取的所有元数据键和值,请将Tika app
cli工具与--metadata
一起使用,或者调用获取Tika找到的元数据键列表。但我不会将随机字符串传递给库方法。我使用的代码基于apachetika文档()。因此,由于主题字段不是空的,要么我使用了错误的关键字(Metadata.subject…),要么库无法检索该值。对此有何见解?Tika App CLI工具为您的文件报告了哪些内容,其中包含--metadata
?很抱歉,我没有看到您的评论。该工具也不会检索任何主题值。我只是创建了一个word文档(.doc),其中包含标题、主题和关键字。保存后,针对它运行tika应用程序,我得到了我的测试主题条目:cp:subject:subject
。我只能建议您提出一个bug并上传有问题的文件,因为一般情况下,Tika对我来说很好,在所有的单元测试中也很好。。。