1. 먼저 Apache Solr 파일을 다운로드 받는다.
http://apache.mirror.cdnetworks.com/lucene/solr/6.6.5/solr-6.6.5.zip
2. 압축을 풀고 원하는 폴더에 풀려진 폴더를 위치시킨다. (본인은 D:\Program\ 폴더 아래에 복사하도록 하겠음)
3. CORE 생성
: 생성하는 이유는 자기만의 인덱스, 필드설정 등을 하기 위함입니다.
1) 먼저 solr 하위의 bin 폴더에 들어갑니다.
==> solr.cmd 명령어를 사용하기 위해서...(귀찮으면 환경설정 path에 bin 경로를 등록하셔도 되구요)
2) 해당 경로에서 cmd창을 열어서 아래 Solr서버 시작+CORE 명령을 실행한다.
- 서버시작 : solr start
- 브라우저 주소창에 localhost:8983 입력시 아래와 같이 나온다.
- CORE생성 : solr create -c [만들고자 하는 이름 아무거나]
예 : solr create -c dasdes
- CORE생성 후 브라우저의 localhost:8983을 새로고침하면 아래와 같이 CORE부분에 선택할 수 있는 콤보박스가 나온다.
3) 생성된 폴더 확인
D:\Program\solr-6.6.5\server\dasdes 라는 폴더가 새로 생겼다.
4. 네이버카페의 루씬 한글분석기 오픈소스 프로젝트에서 한글화 관련된 라이브러리를 다운로드 받는다
: 너무 감사한 분들이 열심히 작업해서 올려주시기 때문에 항상 감사한 마음을 가지고 사용해야 한다.
카페주소 : https://cafe.naver.com/korlucene (다운로드를 위해서는 회원가입을 해야한다.)
저는 최근 "수명님"께서 jar파일로 작업하신 파일 두개를 다운로드한다.
arirang.lucene-analyzer-7.2.1.1.jar, arirang-morph-1.1.4.jar
그런다음 다운로드 한 두 파일을 D:\Program\solr-6.6.5\server\solr-webapp\webapp\WEB-INF\lib 폴더에 넣는다.
5. managed-schema 파일을 수정한다.
- 파일위치 : D:\Program\solr-6.6.5\server\solr\dasdes\conf\managed-schema
- 편집기로 열어 스크롤을 제일 아래로 내린다.
하단의 </schema> 태그가 종료되는 부분이 있는데 그 앞에 아래 설정을 붙여넣는다.
<dynamicField name="*_txt_kr" type="txt_kr" indexed="true" stored="true"/> <fieldType name="txt_kr" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="org.apache.lucene.analysis.ko.KoreanTokenizerFactory"/> <!--루씬의 Factory class --> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.ClassicFilterFactory"/> <filter class="org.apache.lucene.analysis.ko.KoreanFilterFactory" hasOrigin="true" hasCNoun="true" bigrammable="false"/> <filter class="org.apache.lucene.analysis.ko.HanjaMappingFilterFactory"/> <filter class="org.apache.lucene.analysis.ko.PunctuationDelimitFilterFactory"/> <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> <filter class="solr.StopFilterFactory" words="lang/stopwords_kr.txt" ignoreCase="true"/> </analyzer> <analyzer type="query"> <tokenizer class="org.apache.lucene.analysis.ko.KoreanTokenizerFactory"/> <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.StopFilterFactory" words="lang/stopwords_kr.txt" ignoreCase="true"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.ClassicFilterFactory"/> <filter class="org.apache.lucene.analysis.ko.KoreanFilterFactory" hasOrigin="true" hasCNoun="true" bigrammable="true"/> <filter class="org.apache.lucene.analysis.ko.WordSegmentFilterFactory" hasOrijin="true"/> <filter class="org.apache.lucene.analysis.ko.HanjaMappingFilterFactory"/> <filter class="org.apache.lucene.analysis.ko.PunctuationDelimitFilterFactory"/> <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> </analyzer> </fieldType> |
- 기본 Core 생성시 stopwords_kr.txt파일이 없는데 D:\Program\solr-6.6.5\server\solr\dasdes\conf\lang 하위에 생성하자.
- 위 설정에 보이는 txt 파일에 대한 설명
1) protwords.txt : 합성어 같이 쪼개져서는 안되는 단어들을 적어놓는다.
2) lang/stopwords_kr.txt : 빈번히 사용되는 단어와 문자를 중지 단어라고 말하며 검색 키워드에서 자동으로 제외됨.
(인터넷 검색시 친절하게 한국어 단어를 정리해놓은 곳이 많이 있음)
3) synonyms.txt : 맞춤법을 수정하기위한 동의어 설정 (예 : teh -> the )
6. 설정이 잘 적용되었는지 solr 서버를 restart해본다.
- solr stop -all
- solr start
※ 다음시간에는 mariadb와 연동하여 인덱스를 가져오는것을 해볼 예정이다.
만족하셨나요? ~~~~~~~
'오픈소스 > Apache Solr ' 카테고리의 다른 글
Apache Solr 6.6.5 + MariaDB 연동 (0) | 2018.07.19 |
---|