1)
두개의 디렉토리 생성
C:\TOMCAT_HOME
C:\SOLR_HOME

2) 톰캣 부터 설정
C:\TOMCAT_HOME 에 톰캣 압축을 푼다.
C:\TOMCAT_HOME\conf\Catalina\localhost 디렉토리 생성함
C:\TOMCAT_HOME\conf\Catalina\localhost
C:\TOMCAT_HOME\conf\Catalina\localhost\solr.xml 파일을 만듬
내용은

<Context docBase=”C:\SOLR_HOME\solr-1.4.0.war” debug=”0″ crossContext=”true” >
<Environment name=”solr/home” type=”java.lang.String” value=”C:\SOLR_HOME\solr” override=”true” />
< /Context>

보통 C:\TOMCAT_HOME\bin\solr\data\index 여기에 인덱스가 생성됨

C:\TOMCAT_HOME\bin\startup.bat shutdown.bat로 톰캣을 띄워봄

localhost:8080

3) Solr 설정
솔라 압축푼 파일 중

apache-solr-1.4.0\example\solr 폴더를 C:\SOLR_HOME 에 복사함.

bin 과 conf 폴더인데 Environment name=”solr/home” 으로 지정된 폴더에서 conf를 찾으므로 필수임

\apache-solr-1.4.0\dist\apache-solr-1.4.0.war 을 C:\SOLR_HOME 에 복사 해둠

4) War를 다시 구성할 경우

WEB-INF\lib에 추가를 하거나 소스가 변경되었을시 war를 다시 생성해야함.

C:\SOLR_HOME\apache-solr-1.4.0>jar -cvf ../solr-1.4.0.war *

5) 데이터 테스트 전송

Solr 원본에 있는 example\exampledocs 파일을 이용해서 올려 보자

C:\SOLR_HOME\apache-solr-1.4.0\ example\exampledocs>java -Durl=http://localhost:8080/solr/update -jar *.xml

6) 한글 문제

먼저 톰캣 설정

C:\TOMCAT_HOME\conf\Server.xml

<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″ URIEncoding=”UTF-8″
redirectPort=”8443″ />

C:\SOLR_HOME\apache-solr-1.4.0\WEB-INF\lib 에

최신 koreananalyzer-20100525.jar 한글 분석기를 넣음

C:\SOLR_HOME\apache-solr-1.4.0\WEB-INF\classes

를 생성하고 다음 두개 파일을 만듬

A) KoreanFilterFactory.java

package org.apache.solr.analysis;

import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.kr.KoreanFilter;

public class KoreanFilterFactory extends BaseTokenFilterFactory {
private boolean bigrammable=true;
private boolean hasOrigin=true;

public TokenStream create(TokenStream tokenstream) {
return new KoreanFilter(tokenstream,bigrammable,hasOrigin);
}
public void setBigrammable(boolean bool){
this.bigrammable=bool;
}
public void setHasOrigin(boolean bool) {
this.hasOrigin=bool;
}
}

B) KoreanTokenizerFactory.java

package org.apache.solr.analysis;

import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.kr.KoreanFilter;

public class KoreanFilterFactory extends BaseTokenFilterFactory {
private boolean bigrammable=true;
private boolean hasOrigin=true;

public TokenStream create(TokenStream tokenstream) {
return new KoreanFilter(tokenstream,bigrammable,hasOrigin);
}
public void setBigrammable(boolean bool){
this.bigrammable=bool;
}
public void setHasOrigin(boolean bool) {
this.hasOrigin=bool;
}
}

컴파일 방법

c:\SOLR_HOME\apache-solr-1.4.0\WEB-INF\classes>javac -cp ..\lib\lucene-analyzers
-2.9.1.jar;..\lib\lucene-core-2.9.4.jar;..\lib\apache-solr-core-1.4.0.jar;..\lib
\koreananalyzer-20100525.jar -d . *.java

War로 다시 압축하고

톰캣 리스타트..한글 잘됨

테스트 데이터 넣어보기

c:\SOLR_HOME\exampledocs>java -Durl=http://localhost:8080/solr/update -jar post.
jar hd.xml

기본은 8393 포트인가를 찾는다 포트를 지정해서 가려면 -Durl을 쓴다.

 

 

출처 : http://ofwww.com/

+ Recent posts