Java Apache Tika,无法检索';受试者';元数据值

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

我正在使用java,我正在尝试使用ApacheTika提取一些元数据,但是我无法提取“subject”元数据的预期值。该文件是一个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操作系统)

我做错什么了吗



注意,“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对我来说很好,在所有的单元测试中也很好。。。