Hadoop Platform을 공부하다 보니, Hadoop의 개발 계기가 Apache Nutch의 분산 처리하기 위해서라는 것을 알게 되었다. Apache Nutch, Apache Lucene이 무엇인지 알아보자.

Apache Lucene

아파치 루씬(Apache Lucene)은 자바 언어로 이루어진 정보 검색 라이브러리 자유-오픈 소스 소프트웨어이며, 더그 커팅에 의해 개발되었다. 아파치 소프트웨어 재단에 의해 지원되며, 아파치 라이선스 하에 배포된다.

추가적인 개발을 통해 기존의 자바 언어 이외에 오브젝트 파스칼, 펄, C 샤프, C++, 파이썬, 루비, PHP 등 다른 프로그래밍 언어를 사용할 수 있도록 변경되었다.

++ 2010년 3월 아파치 솔라 검색 서버는 루씬의 하위 프로젝트로 합류


주요기능

전문 검색(Full text) 색인 및 검색 기능을 필요로 하는 모든 응용 프로그램에 적합하지만 루씬은 웹 검색 엔진 및 로컬 단일 사이트 검색 구현에서의 유용성으로 널리 알려져 있다.

루씬은 편집 거리를 기반으로 퍼지 검색을 수행하는 기능을 포함한다.

루씬은 또한 추천 시스템을 구현하는데 사용되고 있다. 예를 들어, 루씬의 ‘MoreLikeThis’ 클래스는 유사한 문서에 대한 추천을 생성 할 수 있다.

루씬 논리 아키텍처의 핵심은 텍스트를 가지고 있는 필드를 포함하는 문서의 개념이다. 이러한 유연성이 루씬의 API가 파일 형식과 독립적으로 만들어주었다. PDF, HTML, 마이크로소프트 워드, 마인드맵 및 오픈도큐먼트 뿐만 아니라 많은 다른 정보(이미지 제외)의 텍스트 정보는 추출 할 수 있는 한 모두 색인을 생성 할 수 있다.

Apache Nutch

아파치 너치(Apache Nutch)는 루씬을 기반으로 하여 만든 오픈 소스 검색 엔진이다. 루씬을 기반으로 하였지만 웹 크롤러는 처음부터 다시 만들었다. 여러 가지 플러그인을 붙일 수 있도록 모듈화가 잘 되어 있다. 현재 아파치의 하위 프로젝트이다. 완전히 자바로 작성되어 있지만 자료는 특정 언어와 관계없는 형식으로 저장된다. 100만 페이지 정도를 검색할 수 있다. 여러 대의 머신에서 수행될 수 있도록 맵리듀스와 분산파일처리를 구현하였는데, 이제는 하둡이라는 하위 프로젝트를 통하여 따로 관리되고 있다.


References [wiki_nutch] []

[wiki_nutch] :https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EB%84%88%EC%B9%98 [apache_lucene]: https://lucene.apache.org/