루씬은 어떤 애플리케이션이건 간에 손쉽게 검색 기능을 추가할 수 있게 도외주는 강력한 자바 검색 라이브러리다.
루씬은 단순히 검색 라이브러리이며 검색 애플리케이션에서 색인과 검색 이외의 부분은 모두 개발자가 직접 해결해야한다
노트
고성능 정보 검색(IR) 라이브러리다
👀 IR(Information Retrieval): 문서를 검색하거나, 문서의 내용을 검색하거나, 문서와 연관된 메타 정보를 검색하는 과정
루씬의 API는 최소한의 노력으로 전문 색인과 검색 기능을 사용할 수 있게 충분히 간결하면서도 강력하다
검색 어플리케이션의 내부 구조(그림 1.4)
검색할 대상 문서의 원본을 확보하면 해당 원본을 루씬에서 사용하는 개별 단위, 즉 문서(document)로 변환해야 한다
루씬 문서는 이름이 붙은 여러 개의 필드(field)로 구성
Ex) '책'에 대한 정보 → 제목, 본문, 요약, 저자, 링크 등의 필드가 들어간다
원본 문서에는 없는 정보를 추가해 필드를 생성하면 도움이 된다
Ex) 본문 텍스트 필드에 들어있는 텍스트를 대상으로 의미 분석 과정을 거쳐 인명, 지명, 날짜, 주소 등의 정보를 추출해 별도의 필드에 보관 → NER?
색인 과정에 문서나 필드 단위로 중요한 정도를 고려해 중요도(boost) 값을 지정할 수 있다
Ex) 일반 문서보다 보도 자료가 검색 결과에서 우선 순위를 갖게 하거나 최근 변경된 문서가 오래된 문서보다 중요도가 높다고 지정 가능 → 실제 운영 중인 서비스에도 해당 되는 이야기인 듯