3D Graphic Technical Artist
[ 루씬 스터디 7회차 ] 1장 루씬과의 첫만남 본문
2012년 10월 4일
오늘부터 본격적으로 루씬소스를 뜯어보기로 하자 'ㅅ'/
1장은
'루씬이 무엇인가',
'간단한 루씬 오픈소스의 클래스 설명',
'루씬과 같은 검색 라이브러리 등에 대한 소개'를 다룬다.
#1 루씬이란?
루씬은 확장 가능한 고성능 정보검색(IR, Information Retrieval)라이브러리이다.
루씬은 소프트웨어 프로그램에 색인과 검색 기능을 간단하게 추가할 수 있도록 할 수 있다.
즉, '비즈니스 로직' 부분은 사용자 애플리케이션을 통해 완성된다.
이처럼 검색 기능을 하기 위해서는 '수집', '색인', '검색' 이라는 로직을 구성해야한다.
#2 색인
검색할 내용이 많으면 검색 이전에 각각의 파일을 한번씩 읽어가면서 단어를 포함하는 문서를 찾기 위한 특별한 구조의 데이터를 만들어 저장해두는데 이러한 과정을 '색인한다(indexing)'고 하고 이때 만들어진 특별한 구조의 데이터를 '색인(index)'이라고 한다.
- 색인 주요 클래스
1) IndexWriter
색인 과정 전체를 총괄하는 클래스 2) Directory 루신의 색인 파일 저장을 책임 3) Anlyzer 텍스트의 단어를 루씬에서 활용할 수 있는 토큰(Token 클래스)으로 분리 4) Document 색인에 추가할 데이터를 Document 단위로 처리 5) Field IndexWriter를 통해 색인에 추가하려는 내용은 Document 인스턴스에 Field 형태로 추가 |
#3 검색
검색(searching)은 색인에서 해당 단어를 찾아 어느 위치에 단어가 있는지를 알려주는 과정이다.
- 검색 주요 클래스
1) IndexSearcher
색인을 검색할 때 검색 관련 메소드 제공 2) Term 색인에서 단어를 의미하는 가장 기본적인 요소 3) Query 검색어를 지정할때 Query를 사용 4) TermQuery 특정 이름의 필드에 지정한 단어가 포함되어 있는 문서를 찾을 때 사용 5) Hits Query를 통해 검색한 결과는 Htis로 수집 (결과 문서에 대한 ID 목록만을 갖는다) |
#4 다른 검색엔진
1. IR 라이브러리
1) 이고쏘
자바로 만들어짐, 루씬과 가장 비슷한 IR 라이브러리
2) 자피안
C++로 만들어진 확률 검색 기반 IR 라이브러리
3) MG4J
유비크롤러를 통해 자료수집한 후 그 자료를 관리, 분석하기 위한 도구로 만들어짐
I/O를 고속으로 처리하는모듈, 역파일 색인을 구성하는 모듈 등을 가짐
2. 색인/검색 소프트웨어
색인이나 검색의 성능을 높이거나 사용자 별로 다른 환경이나 요구 사항을 맞추기 위한 변수의 값을 지정할 수 있지만 소프트웨어에 검색 기능을 추가하기에는 적절하지 않다.
1) SWISH, SWISH-E, SWISH++
2) 웰글림스, 글림스
3) 나마주
4) ht://Dig
5) 하비스트, 하비스트-NG(Harvest-NG)
6) 마이크로소프트 인덱스 서버
7) 베리티
3. 그 밖의 정보
1) 디모즈
2) 구글
3) 서치툴즈
'업무(~2014) > Lucene' 카테고리의 다른 글
[ 루씬 스터디 6회차 ] 루씬이란, 환경설정을 해보자! (2) | 2012.10.04 |
---|