Stack Empty
루씬의 색인 작업은 크게 다음 3가지 순서로 볼 수 있다. 텍스트 변환 (추출)분석 (Token화)색인 데이터 생성 1. 텍스트 변환 루씬은 Full-Text 기반의 IR 라이브러리이므로 오로지 String만을 색인화 할 수 있다. 하지만 우리는 PDF 파일, MS 워드, 파워포인트 등의 문서로 정보를 제공하기도 한다. 이것은 Java에서 표현할 수 있는 일반적인 String이 아니므로 이들 정보에서 텍스트 본문을 추출해 낼 수 있는 무엇인가가 필요하게 된다. 그리고 HTML이나 XML은 그것 자체로 텍스트이지만 태그나 엘리먼트를 제거하여 실제 본문의 내용만을 추출할 수 있는 방법이 필요하다. 2. 분석 루씬에서 문서는 Document 객체로 다뤄지는데 IndexWriter의 addDocument를 호출..
OLTP 기반의 업무가 대부분인 요즘은 Front End-User와 Application의 소통이 중요한만큼 대부분의 개발자들의 관심이 UI, Business Logic, DB 설계등에 집중되어 있다. 개발 경력이 얼마 되지 않은 나조차도 신입 때 자주 볼 수 없던 각종 디자인 패턴등을 이용하여 프로그래밍 하는건 당연한 것이 되었고 FrontController를 필두로 한 MVC 기반의 웹 Application 개발은 마치 원래부터 그랬던 것 처럼 자연스럽게 내재화 되었다. 개발자가 Business Logic에만 집중할 수 있도록 이런 디자인 패턴을 제공해주는 각종 Framework가 많이 나오고 있고 이를 원할하게 사용하는 것 자체가 개발자의 능력을 가늠하는 중요한 잣대가 되고 있는 것도 사실이다. 하..
루씬은 색인 대상이 되는 문서의 색인 단어수에 제한을 두는 기능을 제공하고 있다. 2.x 버전에서는 IndexWriter Class에 직접적으로 색인이 되는 문서의 색인 대상 총 단어수를 제한할 수 있는 기능을 제공하는데 이 때 사용했던 것이 IndexWriter.setMaxFieldLength(int maxFieldLength)였다. 이 값은 기본적으로 10,000개로 설정이 되어 있으며 의미는 첫 10,000개의 단어만 색인 대상이 되며 만약 10,000개보다 단어 수가 많다면 이후 단어는 색인 대상에서 제외 됨을 의미한다. 위에서 '사용했던' 이라는 단어를 봐도 알 수 있겠지만 이 메서드는 Deprecated 되었으며 LimitTokenCountAnalyzer Class로 분석기를 Wrapping ..