기타(framework)
2020.06.16 / 14:16

Apache Solr 6.6.5 설치 (Windows10)

코로나
추천 수 54

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와 연동하여 인덱스를 가져오는것을 해볼 예정이다.



출처: https://dodo-it.tistory.com/33?category=749271 [이것저것 해보기]