반응형
준비하기
Solr는 훌륭한 검색엔진입니다.
Java로 개발한 프로그램에 Solr를 빠르게 적용할 수 있도록 도와드리기 위해 Solr 빠른 완성을 연재합니다.
Solr 빠른 완성 시리즈는 Solr의 Schema를 설정하고, Web Application을 이용하여 색인을 추가, 수정, 삭제하는 과정을 다룰 예정입니다.
물론 Web Application에서 Solr를 이용한 검색 결과를 출력하는 방법도 포함됩니다.
이번 1편에서는 Solr 빠른 완성에 필요한 것들을 준비합니다.
개발 환경 준비
- JDK 1.8 이상이 필요합니다. 만약 설치되어있지 않다면 아래 주소에서 다운로드 해주세요.
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html - Tomcat 8 이상, MySQL 혹은 MariaDB가 필요합니다. 만약 설치되어있지 않다면 아래 주소에서 MAMP를 다운로드 해주세요.
MAMP를 이용하지 않고 각각을 별도로 설치하셔도 됩니다. LAMP, XAMPP 등을 이용하셔도 물론 괜찮습니다.
https://www.mamp.info/ - Eclipse Neon 이상이 필요합니다. 만약 설치되어있지 않다면 아래 주소에서 다운로드 해주세요.
https://www.eclipse.org/downloads/
게시판 준비
- 기본 기능만 있는 게시판을 다운로드 합니다. 만약 적용하고 싶은 프로그램 혹은 사이트가 있다면 그 곳에 바로 적용하셔도 됩니다.
이 시리즈에서는 아래 주소에서 다운받은 게시판을 기준으로 진행합니다.
https://github.com/gujc71/board_sample
Spring을 이용한 게시판 제작에 대한 자세한 설명은 아래 블로그에서 확인하실 수 있습니다.
http://forest71.tistory.com/category/Java/게시판기본 - DB 테이블을 준비합니다.
아래 SQL문을 실행하여 board DB를 생성하고 Table을 추가합니다.CREATE DATABASE `board`; USE `board`; CREATE TABLE TBL_BOARD ( BGNO INT(11), -- 게시판 그룹번호 BRDNO int(11) NOT NULL AUTO_INCREMENT, -- 글 번호 BRDTITLE varchar(255), -- 글 제목 BRDWRITER varchar(20), -- 작성자 BRDMEMO varchar(4000), -- 글 내용 BRDDATE datetime, -- 작성일자 BRDHIT INT, -- 조회수 BRDDELETEFLAG CHAR(1), -- 삭제 여부 PRIMARY KEY (BRDNO) ); CREATE TABLE TBL_BOARDFILE ( FILENO INT(11) NOT NULL AUTO_INCREMENT, -- 파일 번호 BRDNO INT(11), -- 글번호 FILENAME VARCHAR(100), -- 파일명 REALNAME VARCHAR(30), -- 실제파일명 FILESIZE INT, -- 파일 크기 PRIMARY KEY (FILENO) ); CREATE TABLE TBL_BOARDREPLY ( BRDNO INT(11) NOT NULL, -- 게시물 번호 RENO INT(11) NOT NULL, -- 댓글 번호 REWRITER VARCHAR(10) NOT NULL, -- 작성자 REMEMO VARCHAR(500) DEFAULT NULL, -- 댓글내용 REDATE DATETIME DEFAULT NULL, -- 작성일자 REDELETEFLAG VARCHAR(1) NOT NULL, -- 삭제여부 REPARENT INT(11), -- 부모 댓글 REDEPTH INT, -- 깊이 REORDER INT, -- 순서 PRIMARY KEY (RENO) ); CREATE TABLE TBL_BOARDGROUP ( BGNO INT(11) NOT NULL AUTO_INCREMENT, -- 게시판 그룹번호 BGNAME VARCHAR(50), -- 게시판 그룹명 BGPARENT INT(11), -- 게시판 그룹 부모 BGDELETEFLAG CHAR(1), -- 삭제 여부 BGUSED CHAR(1), -- 사용 여부 BGREPLY CHAR(1), -- 댓글 사용여부 BGREADONLY CHAR(1), -- 글쓰기 가능 여부 BGDATE DATETIME, -- 생성일자 PRIMARY KEY (BGNO) );
- 1 에서 다운로드 받은 게시판을 Eclipse에 가져와서 정상적으로 실행되는지 확인합니다.
이 시리즈에서는 board4를 이용하도록 하겠습니다.
board4 목록은 아래 주소로 접속할 수 있습니다.
http://localhost:8080/board/board4List
Solr 준비
- 아래 주소에서 Solr를 다운로드 받습니다. 이 시리즈에서는 6.3.0 버전을 사용하겠습니다.
Solr는 Apache 재단에서도 버전 갱신이 빠른 편에 속합니다. 꼭 버전을 확인해주세요.
http://lucene.apache.org/solr/mirrors-solr-latest-redir.html - 다운로드 받은 Solr는 압축되어 있을겁니다. 적당한 경로에 압축을 풀어주세요.
가능하면 경로에 공백이 없고, 영문과 숫자로만 이루어져 있는게 좋습니다. 특수문자는 '-'나 '_' 정도만 있는걸 권장합니다.
압축을 푼 경로는 앞으로 $SOLR_HOME이라고 부르겠습니다. 기억해주세요. - 터미널에서 $SOLR_HOME으로 이동해서 아래 명령어로 Solr를 실행해주세요.
Windows: bin\solr start
Mac, Linux: bin/solr start - 웹 브라우저에서 아래 주소로 이동해서 Solr가 정상적으로 실행됐는지 확인할 수 있습니다.
이 사이트는 앞으로 Solr Admin이라고 부르겠습니다. 기억해주세요.
http://localhost:8983/solr - 준비의 마지막 단계입니다.
Solr에서는 색인된 문서를 담는 커다란 단위를 Collection이라고 합니다. MySQL, Oracle과 같은 RDBMS의 Database와 유사한 개념이죠.
앞으로 실습을 진행할 board Collection을 아래 명령어로 생성해주세요.
Windows: bin\solr create -c board -d server\solr\configsets\basic_configs
Mac, Linux: bin/solr create -c board -d server/solr/configsets/basic_configs - Solr Admin을 새로고침하면 왼쪽 메뉴 중간에 Core Selector가 보일겁니다.
클릭해서 board가 목록에 있는지 확인해주세요.
수고하셨습니다!
실습을 위한 모든 준비가 끝났습니다.
다음편에서는 Solr에 Schema를 설정하겠습니다.
내용에 있는 오류나 질문은 댓글을 달아주세요.
반응형