의견.png

루씬

위키원
Rhkd1456 (토론 | 기여)님의 2019년 10월 1일 (화) 16:08 판
이동: 둘러보기, 검색
루씬(Lucene) 로고
루씬(Lucene) 로고와 글자

루씬(Lucene)은 자바(Java) 언어로 개발된 오픈소스 정보 검색 라이브러리이다. 1999년 더그 커팅에 의해 개발되었다. 루씬 개발 프로젝트는 아파치재단이 관리하는 최상위 프로젝트이다. 아파치 루씬(Apache Lucene)이라고 한다.

개요

루씬은 고성능 정보 검색 IR(Information retrieval) 라이브러리다. IR은 문서를 검색하거나, 문서와 연관된 메타 정보를 검색하는 과정을 말한다. 루씬을 사용하면 개발하고자 하는 어플리케이션에 정보 검색 기능을 손쉽게 추가할 수 있다. 자바로 구현되어 있고 아파치 소프트웨어 재단에서 아파치 소프트웨어 라이센스로 배포중이다.

루씬은 다양한 프로젝트와 어플리케이션에서 검색 엔진으로 사용되고 있으며, 오픈소스 검색 애플리케이션의 양대 축 Solr와 Elasticsearch에서 검색 엔진으로 사용되고 있다. 최근 Solr 프로젝트가 아파치 소프트웨어 재단으로 이관되면서 루씬과 통합되어 개발되고 있다.

검색 엔진 작동 원리

검색엔진은 링크텍스트 기반 인식 기본이다. 크롤러가 방문한 웹 페이지에서 새로운 링크를 발견하면 웹 서버에 데이터 정보를 요청하고 이때 웹 서버는 검색엔진에게 웹 페이지 정보를 보내는데 이것이 바로 메타태그가 포함된 사이트 정보다. 크롤러는 그렇게 추가된 수집한 URL에서 단어와 문구를 분리하여 저장한다. 저장과정에서 각 단어와 문구(쿼리)에서 가중치(weight)와 연관도(relevance)를 부여하고 최종 결과 값을 인덱스(색인)한다.

검색자가 검색창에 검색어를 입력하면 그 때 필요한 것을 끄집어 내는 것이 아니라 검색엔진이 미리 구축해 두었던 인덱스(색인)을 검색하는 것이다. 이 과정이 없으면 검색 결과를 얻기까지 엄청난 시간이 소요된다.

특징

확장 가능한 고성능 정보검색 라이브러리로, 소프트웨어 프로그램에 색인과 검색 기능을 간단하게 추가할 수 있도록 지원한다. 라이선스는 아파치 라이선스 2.0을 사용하고 있으며, 운영 체제는 크로스 플랫폼을 이용하고 있다. 또한 루씬 사용 시 검색과 관련한 전문적인 지식은 필요하지 않으며, 간단한 사용법들만 익히면 색인과 검색 기능을 직접 추가할 수 있다. 또한 자바로 만들어졌지만 파이썬, C++ 등의 언어로 사용할 수 있다.[1]

활용

  • 이메일 검색 : 저장된 메시지를 검색, 새로 도착한 메세지를 색인에 추가할 수 있다.[1]
  • 온라인 문서 검색 : 온라인 문서나 저장된 출판물을 검색할 수 있는 CD 또는 웹 기반에 포함된 문서 판독기 역할을 할 수 있다.[1]
  • 버전 관리 및 콘텐츠 관리 : 문서나 문서 버전을 색인화하여 쉽게 검색할 수 있도록 하는 시스템이다.[1]
  • 웹 페이지 검색 : 사용자가 방문한 모든 웹 페이지를 색인화하기 위해 개인 검색 엔진을 만들 수 있는 웹 브라우저 또는 프록시 서버이다.
  • 내용 검색 : 저장된 문서에서 특정 내용 검색할 수 있다.
  • 뉴스 및 유선 서비스 : 뉴스가 도착했을 때 기사를 색인할 수 있는 뉴스 서버나 릴레이 서버이다.

버전

현재 루씬은 8.1.1이 가장 최신 버전이다.

한계

루씬을 이용하여 개발할 수는 있지만 각각에 대한 전용 라이브러리를 지원하진 않는다. 또한 내용을 단어로 나누는 방법을 구현해야 하며, 국어에 대한 이해를 기반으로 구현하는 것이 어렵다고 한다.[1]

각주

  1. 1.0 1.1 1.2 1.3 1.4 linuxism, 〈루씬(Lucene) 개요 및 원리〉, 《개인 블로그》, 2012-09-24

참고자료

같이 보기


  의견.png 이 루씬 문서는 소프트웨어에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.