태그 보관물: tika

Apache tika를 사용하여 컨텐츠 구문 분석 RESTFul 서버 설치

Java 로 개발된 contents 를 parsing 하는 라이브러리 및 app 으로 command  line 및 GUI 모드로 동작하는 app 와 RESTFul API 로 동작하는 server 가 있습니다.

# 설치

커맨드용 app 는 다음 주소에서 받으면 됩니다.

$ wget http://apache.mirror.cdnetworks.com/tika/tika-app-1.19.jar

standalone 으로 구동하고 RESTFul 로 요청할 수 있는 서버도 있는데 자동화하려면 이게 더 편리하며 아래 주소에서 받으면 됩니다.

$ wget http://apache.mirror.cdnetworks.com/tika/tika-server-1.19.jar

서버로 구동할 경우 처리 결과를 DB 에 남기려면 SQLite JDBC 가 필요하며 아래 라이브러리를 다운받아서 동일한 폴더에 위치시키면 됩니다.

$ wget http://central.maven.org/maven2/org/xerial/sqlite-jdbc/3.23.1/sqlite-jdbc-3.23.1.jar

# 실행

실행은 java -jar 옵션으로 아래처럼 실행하면 됩니다.

App

$ java -jar tika-app-1.19.jar

Server

$ java -jar tika-server-1.19.jar

SQLite JDBC 적용하려면 -cp 옵션을 추가합니다.

$ java -cp . -jar tika-server-1.19.jar

기본 포트는 9998 이며 다른 포트(Ex: 1234)로 구동할 경우 아래와 같이 -p 옵션을 추가합니다.

$ java -cp . -jar tika-server-1.19.jar  -h 0.0.0.0 -p 1234

# 서버 정보

서버로 구동했으면 REST API 로 여러 가지 요청을 할 수 있습니다.

version 확인

$ curl localhost:9998/version

Apache Tika 1.19

detector 확인

$ curl localhost:9998/detectors

# 지원하는 mime type 확인

$ curl localhost:9998/mime-types

# 컨텐츠 parsing

meta 분석

$ curl -T a.pdf localhost:9998/meta

특정 필드가 필요할 경우 url 에 필드명 명시하며 아래는 저자 필드만 추출합니다.

$ curl -T a.pdf localhost:9998/meta/Author
PDF 렌더링 속도를 빠르게 하려면 JDK 8 을 사용하고 JVM 구동시 아래 옵션 추가합니다.
-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider

# 원하는 형식으로 출력

기존 출력은 text/csv 이며 Accept 헤더에 원하는 포맷을 설정해서 호출하면 됩니다.

XML

$ curl -T a.pdf -H "Accept: application/rdf+xml" localhost:9998/meta

아래는 json 형식으로 결과물을 전달 받습니다.

$ curl -T a.pdf -H "Accept: application/json" localhost:9998/meta

JSON 일 경우 개행을 안 해서 보기가 힘드니 jq 로 포맷팅 하면  결과물이 보기 편해집니다.

$ curl -T a.pdf -H "Accept: application/json" localhost:9998/meta | jq .

Example

$ curl -H "Accept: application/json" localhost:9999/meta -T sample.pdf

 $ curl -H "Accept: text/plain" localhost:9999/tika -T sample.pdf

 $ curl -H "Accept: application/json" localhost:9999/rmeta -T sample.pdf