Solr
Lucene을 Java API가 아닌 HTTP 호출을 통해서 사용할 수 있게 만든 서비스.
- 때문에 모든 언어에서 Solr를 통해 Lucene을 사용하는 것이 가능해지고,
- 여러 WAS에서 Solr 단일 인스턴스에 검색/인덱싱 가능.(확장성이 좋아진다)
- 기본적으로 모든 요청과 응답은 HTTP GET/POST 를 통해서 XML로 이루어 진다.
- "솔라"
언어별 응답
응답을 받을 때는 각 언어별로, 언어별 데이터 형으로 받는 것이 가능하다. 또한 언어별 Client 라이브러리가 제공된다.
- JSON
- Python : 2007년 6월 말 현재, Solr 1.2와 호환 안되는 상태임. 확인할 것. 살짝 고치면 잘 작동함.
- Ruby
- Java의 경우에는 example을 확인할것.
한글 처리
한글 검색을 위해서는 CJKTokenizer를 사용해야 하는데, 현재 Solr 1.2에는 CJKTokenizerFactory가 들어있지 않다.
- CJKTokenizerFactory.java : 링크 아래 파일을 컴파일하여 Solr WEB-INF/classes 에 넣어주고 재시작 한다.
- package org.apache.solr.analysis;
import java.io.Reader;
import org.apache.lucene.analysis.cjk.CJKTokenizer ;
import org.apache.lucene.analysis.TokenStream;
import org.apache.solr.analysis.BaseTokenizerFactory;
/**
* CJKTokenizer for Solr
* @see org.apache.lucene.analysis.cjk.CJKTokenizer
* @author matsu
*/
public class CJKTokenizerFactory extends BaseTokenizerFactory {
/**
* @see org.apache.solr.analysis.TokenizerFactory#create(Reader)
*/
public TokenStream create(Reader input) {
return new CJKTokenizer( input );
}
}
- Tokenizer Factory를 인덱싱이 필요한 FieldType에 추가하고, Filter로 StopFilterFactory와 WordDelimiterFilterFactory 를 추가해줘야 한다.
- <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.CJKTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.CJKTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
</analyzer>
</fieldType>
'Search Engine > Solr' 카테고리의 다른 글
[SOLR] solr의 다양한 가중치 적용방법 (0) | 2012.07.10 |
---|---|
[SOLR]한글 웹문서 색인을 위한 Tokenizer, Filter세팅방법 (0) | 2012.07.10 |
Importing a MySQL database into Apache Solr (0) | 2012.07.10 |
Solr 톰캣 연동 세팅 방법 (0) | 2012.07.10 |
Solr 기본 테스트 (Tutorial) (0) | 2012.07.10 |