2011-03-31 4 views
2

Apache Tika 내에 application/octet-stream 유형의 구문 분석기가 있습니까? 나는 그것이 해석 할 수없는 스트림이라고 생각한다.알 수없는 컨텐츠 유형의 문서에서 텍스트 추출하기

ODS 문서, MS 문서 및 PDF 파일을 구문 분석하면됩니다. new Tika().parseToString(file);이면 충분합니다. 하지만 콘텐츠 유형이 감지되지 않으면 어떻게 될지 알 수 없습니다. ->application/octet-stream이 기본값입니다. 이러한 유형 중 하나 인 문서에서 텍스트를 추출 할 기회가 있지만 contentType 감지기가 해당 유형을 감지하지 못했습니다.

사용자가 문서를 지원하는 형식이 아니라고 알리는 대신 무엇을 시도해야합니까?

또는 결과로 application/octet-stream 콘텐츠 유형이 우리가 읽을 수없는 신호입니까? 아니면 "이 문제를 해결하는 방법을 알아야합니다"?

답변

3

검출기는 파일이 무엇인지 모르는 경우 응용 프로그램/옥텟 스트림을 돌아갑니다

그리고 검출기는 그것이 무엇인지하지 않는 경우, 다음 티카는 할 수 없습니다 그것을 위해 적절한 파서를 고르는 것. 그 어떤 경우에는 검출에 도움이됩니다, 당신은 감지 및 분석을 수행 할 때 파일의 이름으로 전달

당신이 할 수있는 경우 (당신은 않는 EmptyParser 아무것도 될 겁니다) :

문서는 현재 지원되지 않는 형식으로되어있는 경우 http://tika.apache.org/0.9/formats.html

-

Metadata metadata = new Metadata(); 
metadata.set(Metadata.RESOURCE_NAME_KEY, filename); 
ParseContext context = new ParseContext(); 

Parser parser = new AutoDetectParser(); 
parser.parse(input, textHandler, metadata, new ParseContext()); 

또한, 파서가 어디 당신이 가지고있는 문서를 사람이 있는지 확인하기 위해 티카 웹 사이트의 지원되는 형식 부분을 확인하는 가치 , 그러면 두 가지 선택 사항이 있습니다 (즉각적인 수정이 아님). 하나는 새로운 파서를 작성하는 것입니다 (형식에 적합한 Java 라이브러리를 찾아야 함). 다른 하나는 명령 행 기반 파서를 사용하는 것입니다 (xhtml 세대를 수행 할 수있는 플랫폼 용 실행 파일을 찾은 다음 해당 파일을 연결해야합니다)

+0

감사합니다. 그리고 mime 범위를 가지고있을 때 Tika에서 어떻게 작동합니까? 유형 및 파일 확장명의 범위를 사용하여 작업 할 수 있습니까? 기본적으로 tika-mimetypes.xml 파일에서 모든 MIME 유형과 파일 확장자를로드하며 MimeTypes.types 및 MimeTypes.registry에로드됩니다. 내 자신의 tika-mimetypes.xml을 만들어야합니까? 또는 MIME 형식 정의로 다른 파일을로드 할 수 있습니까? 파일을로드하는 MimeTypes.getDefaultMimeTypes() 만 있습니다. – lisak

+0

기본적으로있는 일부 MIME 유형의 검색을 제거 하시겠습니까? 그렇다면 지금 쉬운 옵션은 tika-mimetypes.xml을 커스터마이징하고 버전을 클래스 패스보다 먼저 가져 와서 환경 설정에 사용하도록하는 것입니다. 새로운 mimetypes를 찾고 싶다면 패치를 제출하는 것이 가장 쉽습니다. – Gagravarr

+0

mime 유형의 90 %에 대한 탐지를 제거하고 싶습니다. 이러한 확장자 인 html, doc, docx, odt, txt, rtf, srt, sub, pdf, ods, odp, xls, ppt, msg에 해당하는 MIME 유형 만 검색해야합니다. MIME 형식이 다른 다른 문서는 거부해야합니다. ContainerAwareDetector와 MimeTypes 감지기를 폴백 감지기로 사용합니다. 좋은 선택이 되길 바랍니다. – lisak

관련 문제