티스토리 뷰

solr 다운로드

url : http://lucene.apache.org/solr/

(archive : http://archive.apache.org/dist/lucene/solr/)

5.2 버전을 다운로드 한다.(http://archive.apache.org/dist/lucene/solr/)

 

압축 해제. (경로 : c:/work/)

cmd 로 해당 디렉토리로 간다.

cd /work/solr-5.2.0/bin

> solr start

 

결과

 

 

 

 

 

http://localhost:8983/solr/

url로 접속 해보면 solr admin이 나온다.

 

 

 

 

 

코어 생성 (CORE_NAME: jinyc)

C:\work\solr-5.2.0\bin>solr create -c [CORE_NAME]

 

 

 

 

서버 재시작

solr restart -p 8983

 

 

한글 한글인덱싱이 되도록 형태소 분석기 추가.
네이버 카페에서 arirang-analyzer-5.0+를 다운로드 받는다.

url : http://cafe.naver.com/korlucene

 

C:\work\solr-5.2.0\server\solr-webapp\webapp\WEB-INF/lib

경로에 아래 파일 복사

arirang.lucene-analyzer-5.0-1.0.0.jar

arirang-morph-1.0.0.jar

 

 

 

 

 

 

 

managed-schema 수정.

경로 : C:\work\solr-5.2.0\server\solr\[CORE_NAME]\conf\managed-schema

</schema> 바로 위에 붙여넣는다.

 

 

<!-- Korean -->

<dynamicField name="*_txt_ko" type="text_ko" indexed="true" stored="true"/>

<fieldType name="text_ko" class="solr.TextField">

<analyzer type="index">

<tokenizer class="org.apache.lucene.analysis.ko.KoreanTokenizerFactory"/>

<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.StopFilterFactory" words="lang/stopwords_ko.txt" ignoreCase="true"/>

<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>

</analyzer>

<analyzer type="query">

<tokenizer class="org.apache.lucene.analysis.ko.KoreanTokenizerFactory"/>

<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.StopFilterFactory" words="lang/stopwords_ko.txt" ignoreCase="true"/>

<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>

<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>

</analyzer>

</fieldType>

 

<field name="siteName" type="text_ko" multiValued="true" indexed="true" required="true" stored="true"/>

<field name="url" type="text_ko" multiValued="true" indexed="true" required="true" stored="true"/>

<field name="subject" type="text_ko" multiValued="true" indexed="true" required="true" stored="true"/>

<field name="regDt" type="string" multiValued="false" indexed="true" required="true" stored="true"/>

<field name="contents" type="text_ko" multiValued="true" indexed="true" required="true" stored="true"/>

 

 

 

 

 

 

 

 

불용어 파일을 추가한다.

경로 : C:\work\solr-5.2.0\server\solr\[CORE_NAME]\conf\lang\stopwords_ko.txt

구글에 stopwords_ko.txt로 검색.

 

 

 

 

 

 

 

solr 재시작

> solr restart -p 8983

 

 

 

 

 

 

 

mysql 연동, data import

 

경로 C:\work\solr-5.2.0\dist\ 의

solr-dataimporthandler-5.2.0.jar

solr-dataimporthandler-extras-5.2.0.jar

파일을 C:\work\solr-5.2.0\server\solr-webapp\webapp\WEB-INF\lib\ 에 복사

 

 

 

 

 

mysql 커넥터 라이브러리를 준비

mysql-connector-java-5.1.37-bin.jar 를 사용

url : http://dev.mysql.com/downloads/connector/j/

C:\work\solr-5.2.0\server\solr-webapp\webapp\WEB-INF\lib\ 에 복사

 

 

 

 

solrconfig.xml 수정

경로 C:\work\solr-5.2.0\server\solr\[CORE_NAME]\conf\solrconfig.xml

 

<!-- Highlighting Component

위에 추가

 

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">

    <lst name="defaults">

        <str name="config">db-data-config.xml</str>

    </lst>

</requestHandler>

 

 

 

 

DB관련 정보 파일 생성(DATABASE_NAME: jinycSearch, TABLE_NAME: solr_data)

경로 C:\work\solr-5.2.0\server\solr\[CORE_NAME]\conf\db-data-config.xml

 

<?xml version="1.0" encoding="UTF-8" ?>

<dataConfig>

 

<dataSource

driver="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306//[DATABASE_NAME]?zeroDateTimeBehavior=convertToNull&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;useEncoding=true&amp;emulateLocators=true"

user="USER_ID"

password="USER_PASSWORD" />

 

<document>

    <entity name="document" query="SELECT id, sitename, url, subject, SUBSTRING(IFNULL(regdt, '2010-01-01'), 1, 10) AS regdt , contents FROM [TABLE_NAME] ">

        <field column="id" name="id"/>

        <field column="sitename" name="sitename"/>

        <field column="url" name="url"/>

        <field column="subject" name="subject"/>

        <field column="regdt" name="regdt"/>

        <field column="contents" name="contents"/>

    </entity>

</document>

 

</dataConfig>

 

 

 

solr 재시작

> solr restart -p 8983

 

 

 

 

 

 

이제 solr_data테이블에 데이터를 쌓고.

CREATE TABLE `solr_data` (

    `id` int(11) NOT NULL AUTO_INCREMENT,

    `sitename` varchar(20) DEFAULT NULL,

    `url` varchar(500) DEFAULT NULL,

    `subject` text,

    `regdt` varchar(20) DEFAULT NULL,

    `contents` longtext,

    KEY `id` (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4781 DEFAULT CHARSET=utf8;

 

 

 

 

 

색인 작업은

http://localhost:8983/solr/[CORE_NAME]/dataimport?command=full-import

으로 실행시킨다.

command 는아래와 같다.

full-import : insert

delta-import : update

reload-config : 설정 파일을 리로딩합니다.

abort : 인덱싱 작업을 중단

 

 

 

import 작업이 안되면?

solr stop -p 8983

solr start

로 재시작 해봅시다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함