2014-04-11 5 views
0

java를 사용 중이며 apache tika로 일부 메타 데이터를 추출하려고하는데 'subject'메타 데이터의 예상 값을 초과 할 수 없습니다. 파일은 jpg 이미지입니다.Apache Tika, 'subject'메타 데이터 값을 검색 할 수 없습니다.

우선이 같은 파일을 구문 분석하고 있습니다 :

 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 OS).

enter image description here

오전 내가 뭔가 잘못하고?


PS : "TikaCoreProperties.KEYWORDS은"아파치 티카 문서에 따라 주제를 검색하는 또 다른 방법입니다 있습니다.

답변

0

Apache Tika는 모든 파일 형식에서 일관된 메타 데이터를 반환하려고합니다. 한 형식에서 Author, 또 다른 Creator, 또 다른 Created By 및 다른 Creator[0]을 호출하면 Tika가이 모든 것을 일관된 키로 매핑합니다. 일반적으로 이러한 키는 더블린 코어와 같은 잘 알려진 외부 표준을 기반으로합니다.

Tika가 Microsoft Office 문서에 적용하는 매핑을 보려면 SummaryExtractor을 찾아야합니다. Tika가 주어진 파일에서 추출 할 수있는 모든 메타 데이터 키와 값을 알고 싶다면 cli 도구 (--metadata)를 사용하거나 names() (Metadata object)을 호출하여 Tika에서 찾은 메타 데이터 키 목록을 가져 오십시오.

+0

하지만 임의의 문자열을 라이브러리 메서드에 전달하고 있지 않습니다. 내가 사용중인 코드는 아파치 Tika 문서 (https://tika.apache.org/1.5/api/org/apache/tika/metadata/Metadata.html)를 기반으로합니다. 그래서 제목 필드가 비어 있지 않기 때문에 잘못된 키워드 (Metadata.SUBJECT ...)를 사용하고 있거나 라이브러리가 값을 검색 할 수 없습니다. 이것에 대한 통찰력? – Mario

+0

Tika-App CLI 도구가 파일에 대해'--metadata'로 무엇을보고합니까? – Gagravarr

+0

죄송합니다. 귀하의 의견을 보지 못했습니다. 도구는 주제 값도 검색하지 않습니다. – Mario