메뉴 건너뛰기

2016.12.08 01:37

solr적용시 사용법

조회 수 5582 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

우선 형태소 분석기를 다운로드 하신 다음에

이클립스에서 프로젝트 추가 하신후

KoreanFilterFactory, KoreanTokenizerFactory 이 두개의 클래스를 추가 하시면 됩니다.

추가를 하시면 BaseTokenFilterFactory, BaseTokenizerFactory 이 두개의 클래스가 없기 때문에 오류가 발생을 한 것인데 solr lib를 require project로 잡으셔도 되고 lib를 받아서 빌드패스에 잡으시고 빌드를 하시면 됩니다.

package org.apache.lucene.analysis.kr;

import org.apache.lucene.analysis.TokenStream;
import org.apache.solr.analysis.BaseTokenFilterFactory;

public class KoreanFilterFactory extends BaseTokenFilterFactory {
public KoreanFilter create(TokenStream input) {
return new KoreanFilter(input);
}
}

package org.apache.lucene.analysis.kr;

import java.io.Reader;

import org.apache.solr.analysis.BaseTokenizerFactory;


public class KoreanTokenizerFactory extends BaseTokenizerFactory {
public KoreanTokenizer create(Reader input) {
return new KoreanTokenizer(input);
}

}

빌드 후 koreananalizer.jar로 저장 한 후. was의 lib 경로에 넣습니다.

example로 들어있는 jetty에서는 lib를 어디에 넣어야 할지를 몰라서

한참을 해메다가 work/WEB-INF/lib에 넣었더니 동작을 하더군요

schema.xml에 text필드를 아래와 같이 수정합니다.

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<!--<tokenizer class="solr.WhitespaceTokenizerFactory"/>-->
<tokenizer class="org.apache.lucene.analysis.kr.KoreanTokenizerFactory"/>
<filter class="org.apache.lucene.analysis.kr.KoreanFilterFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<!-- <tokenizer class="solr.WhitespaceTokenizerFactory"/>-->
<tokenizer class="org.apache.lucene.analysis.kr.KoreanTokenizerFactory"/>
<filter class="org.apache.lucene.analysis.kr.KoreanFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>

기존의 solr.WhitespaceTokenizerFactory를 주석 처리 하고 새로 생성한 KoreanTokenizerFactory를 tokenizer class로 넣었습니다.

제가 환경이 되면 검색하는 모습도 보여드리고 싶은데 환경이 안되는군요

ps. 한글 검색 시에는 http://localhost:8983/solr/admin/ 에서 검색 하셔야 합니다. tutorial에서 나오는 것 같이 url에 q값에 한글을 넣으면 오류를 발생합니다


List of Articles
번호 제목 날짜 조회 수
38 스프링, MySQL, MyBatis 연동 - 데이터 조회하기 file 2021.05.06 790
37 스프링, MySQL, MyBatis 연동 file 2021.05.06 128
36 Java was started but returned exit code=13 - 이클립스 실행시 에러 file 2021.03.31 152
35 스프링 프로젝트 생성 후 샘플 코드 한글 깨짐 현상 file 2021.03.31 186
34 쿠팡 api 프로젝트 / 적용 테스트 (스프링 부트 / 자바 ) file 2021.03.29 567
33 AJAX 통신시 컨트롤러에서 한글 문자열을 리턴해야하는 경우 인코딩 문제 처리 2018.07.04 2599
32 스프링에서 구글맵 연동하기 2018.07.04 4588
31 스프링과 안드로이드 연동1(Html 소스 가져오기) 2018.07.04 2675
30 스프링과 안드로이드 연동2 : 서버에서 안드로이드로 이미지 가져오기(다운) 2018.07.04 3319
29 스프링과 안드로이드 연동3 : ( 서버에서 XML로 반환해 가져오기 ) 2018.07.04 2896
28 스프링과 안드로이드 연동4 : (JSON으로 가져오기) file 2018.07.04 5530
27 스프링과 안드로이드 연동5 : (Javascript에서 Android 함수 호출하기) 2018.07.04 3390
26 JAVA Crawling(크로울링) 기본([펌]http://partnerjun.tistory.com/guestbook) file 2018.07.04 5106
25 [펌]자바 Crawling(크로울링) 로그인 해 긁어오기 file 2018.07.04 5998
24 [펌]자바 Crawling(크로울링) Ajax로 요청하는 것 긁어오기 file 2018.07.04 2898
23 쿠키와 세션을 이용한 자동 로그인 처리 file 2018.07.04 8973
22 스프링 외부 경로 폴더 지정하기 2018.07.04 4611
21 play framework + 이클립스 초간단 개발환경 구축법 2016.12.08 12415
20 루씬 기본적인 검색 엔진 - 샘플 예제 file 2016.12.08 7769
19 [패스트캣]1. 시작하기 - 설치 file 2016.12.08 5982
Board Pagination Prev 1 2 Next
/ 2

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved