내가 필요해서 내가 적는 블로그

JAVA 백엔드 개발자의 기록들

DEVOPS

Apache solr install for windows 윈도우에 아파치 솔라 설치하기[1]

돌프 2022. 2. 14. 19:26
반응형

아파치 솔라 공식홈페이지 https://solr.apache.org/ 우측 상단에 DOWNLOAD를 클릭하면, 

아래와 같이 다운로드를 받을 수 있는 페이지가 나온다. 

windows test 용으로 설치 할 예정이라, 아래의 zip 버전을 다운받아보았다. 

 

* Solr가 Java 로 만들어져있기 때문에 Java 1.8 버전 이상이 설치 되어있어야 한다. 

 

 

1. DownLoad

 

필자는 C:\Program Files\solr 폴더를 만들고 압축을 해제 하였다. 

CMD 창을 관리자모드로 열고, solr를 설치한 경로의 bin 으로 접근한다. 

bin 아래에서 solr start 명령어 입력시 Happy searching! 이라는 문구가 표출되며 데몬이 잘 기동된걸 확인할 수 있다.

 

 

브라우저를 열고, http://localhost:8983 을 입력하면 아래와 같은 관리자 페이지가 나온다. 

여기까지 솔라의 데몬 실행 및 확인이 진행되었다. 필자는 왼쪽 사이드바에 보이듯 data1 이라는 코어를

생성하였다. 

 

 

2. Core 생성

왼쪽 사이드에 Core Admin 을 클릭한 뒤, Add Core를 생성하여도 되지만,

일단 설치된 경로에서 CMD창으로 진행하겠다. 

CMD를 관리자모드로 실행하여, Solr 설치 경로로 가서 아래와 같이 입력한다. 

solr create -c [코어이름]  * 필자는data1     

코어 생성을 마쳤으니 솔라를 재시작 하도록 하자. 

>>  solr stop -all (종료)

>>  solr start  (시작)

 

3. 한글 검색 필터 추가

3-1. 라이브러리 추가

네이버카페에 가입하여 한글 관련 라이브러리를 다운 받도록 하자. 

https://cafe.naver.com/korlucene

 * 카페에 다운로드 탭에 lib가 있다. 

- arirang.lucene-analyzer-7.2.1.1.jar

- arirang-morph-1.1.4.jar

 

두개의 라이브러리를 다운받아서 WEB-INF에 넣어주자. 

아리랑 라이브러리라니... 가슴이 웅장해진다 ㄷㄷ

* 솔라가 설치된 경로 아래에 잘 찾아서 넣어주자. 

 

3-2. xml 설정 변경

라이브러리를 추가하고 나면 추가되었다고 알려주기 위해 설정을 해야 된다. 

아래의 <텍스트>를 복사해서 '코어'를 생성했던 경로의 managed-schema를 수정해 줘야 한다.

* 필자는 data1 코어 폴더 아래에 managed-schema 파일이 존재 했다. 

 

C:\Program Files\solr\solr-8.11.1\server\solr\data1\conf\managed-schema

 

   <dynamicField name="*_txt_kr" type="txt_kr"  indexed="true"  stored="true"/>


    <fieldType name="txt_kr" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="org.apache.lucene.analysis.ko.KoreanTokenizerFactory"/>
            <filter class="org.apache.lucene.analysis.ko.KoreanFilterFactory" hasOrigin="false" hasCNoun="true"  bigrammable="true"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_kr.txt" />
            <filter class="solr.EnglishPossessiveFilterFactory"/>
            <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
            <filter class="solr.PorterStemFilterFactory"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="org.apache.lucene.analysis.ko.KoreanTokenizerFactory"/>
            <filter class="org.apache.lucene.analysis.ko.KoreanFilterFactory" hasOrigin="false" hasCNoun="false"  bigrammable="false" queryMode="true"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_kr.txt" />
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
            <filter class="solr.EnglishPossessiveFilterFactory"/>
            <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
            <filter class="solr.PorterStemFilterFactory"/>
        </analyzer>
    </fieldType>

 

위의 설정 정보를 복사해서 수정하고

"stopwords_kr.txt" 파일을 생성하여 data1\conf\lang 아래에 넣어줘야 한다. 

(필자는 에러가 발생해서 C:\Program Files\solr\solr-8.11.1\server\solr\data1

아래의 경로에도 "stopwords_kr.txt" 파일을 생성하여 넣어줬다.)

 

만약, Solr 를 재기동 하여 admin 콘솔을 확인하여 아래와 같은 에러가 나는지 확인해야 한다. 

Error instantiating class: 'org.apache.lucene.analysis.ko.KoreanTokenizerFactory' 

lib 파일2개 넣은것을 instance 화 하지 못하여 발생한 에러가 대부분이고, 설정 정보가 잘못 되었다고 보면 된다. 

 

필자의 경우에는 managed-schema 설정 파일 880 line 쯤 보면 

<!-- Korean morphological analysis --> 코리아 필터 부분을 전체 주석처리 하니

위에서 추가한 필터 내용이 잘 적용되어 에러가 없어졌다. 

 

 

끗.

 

 

lib 출처

Apache Lucene/Solr 네이버 카페

 

 

 

 

 

본문 내용이 도움이 되셨다면, 아래의 공감버튼을 눌러주세요. 

정보 공유를 위한 포스팅에 큰 힘이 됩니다. 

만약 틀린 정보가 있으면 댓글 달아주세요. 수정하도록 하겠습니다. 

읽어주셔서 감사합니다. 오늘도 좋은 하루 보내세요. 

 

반응형