오픈 소스 Lucene(루씬)을 기반으로 하는 

대표적인 검색엔진인 Solr(쏠라)와 Elasticsearch(엘라스틱서치)는 Lucene을 기반으로 하지만 사용법은 전혀 다르다.

특히 데이터 수집(색인-Indexing)에 있어서, 

일반적인 문서 색인은 Solr가 쉽게 구현할 수 있고, 웹 로그와 같은 짧은 형태의 데이터는 Elasticsearch가 쉽게 구현할 수 있는 것 같다.

또, 검색(Search) 문법에 있어서 Solr는 Lucene의 문법을 그대로 따르고, Elasticsearch는 자신만의 문법을 구현한 차이가 있다.

이 두 가지 검색엔진의 차이를 이해하고, 

둘 다 익히기 위해 예제를 만드는 중으로 세부 기능을 구현하는데 시간이 많이 걸려 (언제 끝날지...)

일단 먼저 기본적인 색인 / 검색 기능을 구현하고 설치 / 사용하는 방법을 정리한다.

Solr와 Elasticsearch예제는 각각 Github 에서 다운로드 받을 수 있다.

 

    1. Solr 설치
    2. Solr 주요 설정과 코드
    3. Elasticsearch 설치
    4. Elasticsearch 주요 설정과 코드

 

먼저, Solr 예제 사용법을 정리한다.

예제는 그림과 같이 기존에 공유한 웹 프로젝트인 Project9에 검색 기능을 추가하는 형태로 작성했다.

Project9에 대한 설명은 기존 블로그에서 확인 할 수 있다.

Project9의 게시판 데이터를 대상으로 하고,

공지사항과 일반 게시판의 게시판 종류를 데이터 종류로 구분해서 통합 검색 기능을 구현하였다.

 

설치 방법은 Solr설치 (데이터 수집)와 Project9 설치(데이터 검색)로 구분된다.

Solr 설치

  1. Solr 다운로드 및 설치
  2. 실행: solr start
  3. 라이브러리 설치
  4. 데이터 구성
  5. 색인

 

Project9 설치

    소스 다운로드 및 설치

참고: Project9 설치는 기존 방식과 동일하기 때문에 여기에서 별도로 정리하지 않는다.

 

Solr 설치

 

1.Solr 다운로드 및 설치

Solr 다운로드 사이트에서 운영체제에 맞는 압축 파일을 다운로드 받아서, 압축을 해제 한다.

 

2. 실행: solr start

콘솔창(cmd)에서 Solr를 실행하고(start),  데이터를 저장할 코어(project9)를 생성한다(create).

주의: Solr를 사용하려면 JDK1.8 이상이 설치 되어 있어야 한다.

 

웹 브라우저에서 http://localhost:8983/solr/를 입력해서 Solr 관리창에 접속한다.

생성된 project9 코어르 확인하고, 색인을 하기 위해 선택한다.

 

3. 라이브러리 설치

웹 프로젝트인 Project9은 MariaDB에 데이터를 저장하기 때문에,

데이터를 수집 하기 위해서 MariaDB 드라이버를 설치하고,

수집된 한글 데이터를 색인하기 위해 아리랑 형태소 분석기를 추가한다.

먼저, MariaDB 공식 웹 사이트에서 드라이버를 다운로드 받거나  Project9을 설치하고 .m2 폴더에서 mariadb-java-client-x.x.x.jar파일을 복사해서 solr/dist 폴더에 넣어준다.

형태소 분석기는 아리랑을 사용하고, 커뮤니티 사이트의 다운로드 메뉴에서 적절한 버전을 다운로드 받아서

[solr설치경로]\server\solr-webapp\webapp\WEB-INF\lib 폴더에 넣어 준다.

 

4. 데이터 구성

이 작업을 하기 위해서는 Project9의 소스가 설치 되어 있어야 한다.

데이터 구성에 필요한 정보가 Project9의 소스의 solr 폴더에 있기 때문이다.

문서 작성의 단계상 다음 단계에 하는 것으로 정리했지만, Project9의 Solr 예제 소스를 다음과 같이 다운로드 받는다.

또는, Eclipse에서 다운로드 받는 것이 편리하고, Eclipse로 git 소스를 다운로드 받는 것은 기존 블로그를 참고하면 된다.

        git clone https://github.com/gujc71/Project9_Solr.git

 

다운 받은 Project9 소스 폴더에서 project9_solr\solr에 있는 모든 파일을 [solr설치경로]\server\solr\project9\conf 폴더에 복사한다.

 

지금까지 설정한(복사한) 내용들이 반영될 수 있도록 Solr를 재가동 한다.

         solr restart -p 8983

 

5. 색인

Solr의 색인은 DIH (Data Import Handler)를 이용하며 자세한 정리는 DIH 예제 분석에서 정리되어 있다.

생성한 project9 코어를 선택하고, Dataimport 메뉴에서 풀색인(full-import)을 실행한다(execute).

위 그림의 우측 녹색 배경에 출력된 내용처럼 41건의 데이터가 조회되면 잘 색인(Indexing)된 것이다.

주의: 실행 결과는 [Refresh Status] 버튼을 계속 클릭하거나, [Auto-Refresh Status]를 선택하면 된다.

 

[Query] 메뉴에서 실행(Execute Query] 버튼을 클릭해서 색인한 데이터를 조회한다.

검색과 관련된 자세한 사항은 인터넷 검색을 해보거나 기존 블로그 내용을 참고하면 된다.

 

Project9 설치

 

Project9의 설치는 기존에 공개한 웹 프로젝트로 기존 블로그에 정리되어 있다.

이 내용과 동일하고, Github 프로젝트 명만 project9이 아닌 project9_solr로 바꾸어 설치하면 된다.

그리고, 적당한 계정으로 로그인해서 [통합검색] 메뉴에서 다양한 검색 결과를 확인할 수 있다.

 

이상으로 예제를 실행하는 방법을 정리하였고

데이터를 수집해서 색인하고, 색인한 데이터를 프로그램에서 조회하는 주요 부분에 대한 코드 정리는 다음 블로그에서 정리한다.

 

 

+ Recent posts