SOLR安装与配置

SOLR安装与配置
我用的是 Solr3.3

安装前准备
Java 1.5 或更高版本
servlet 容器,如 Tomcat 5.5。

SOLR安装

     将SOLR发行包解压,复制dist/apache-solr-3.3.0.war到指定目录,例如c:/solr

TOMCAT配置

server.xml
     在server.xml主要设置侦听端口。一般来说,SOLR常用端口为8983。你也可以使用自己喜欢的端口,例如80或8080。 同时,注意将URIEncoding设置为UTF-8。例如AJP等更多Native优化,参考TOMCAT优化方案。
<Connector port="8983" maxHttpHeaderSize="8192" 
maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
enableLookups="false" redirectPort="8443" acceptCount="100" 
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />


solr.xml
     新增solr.xml在{$TOMCAT}/conf/Catalina/localhost/下。TOMCAT在启动时将自动加载该CONTEXT。 docBase应设置为solr war包存放位置,例如c:/solr/apache-solr-3.3.0.war
     solr/home的值应设置为你规划存放的索引根路径,例如/web/solr/。该目录在以下将称为{$SOLR_HOME}

<Context docBase="c:/solr/apache-solr-3.3.0.war" debug="0" crossContext="true" > 
<Environment name="solr/home" type="java.lang.String" value="/web/solr" override="true" /> 
</Context>


SOLR配置

把solr包里面的example\solr文件夹下面的所有文件放入到 {$SOLR_HOME}里面

庖丁分词包安装与设置
      solr3.3+庖丁分词器paoding的例子,paoding分词器,最新的JAR文件为paoding-analysis-2.0.4-beta,不支持lucene3.0以上版本,作者提供了支持lucene3.0以上版本的源码,但没有打成JAR包发布。附件里有编译好的源码,支持lucene3.0以上版本,同时还添加了一个类,该类的作用是让庖丁分词器支持solr。
添加的类文件如下:
package net.paoding.analysis.analyzer.solr;

import java.io.Reader;
import java.util.Map;

import net.paoding.analysis.analyzer.PaodingTokenizer;
import net.paoding.analysis.analyzer.TokenCollector;
import net.paoding.analysis.analyzer.impl.MaxWordLengthTokenCollector;
import net.paoding.analysis.analyzer.impl.MostWordsTokenCollector;
import net.paoding.analysis.knife.PaodingMaker;

import org.apache.lucene.analysis.Tokenizer;
import org.apache.solr.analysis.BaseTokenizerFactory;

/**
 * 实现Solr3.2分词器接口
 * 基于PaodingTokenizer的实现
 * 
 * @author sunlightcs
 * 
 * http://hi.juziku.com/sunlightcs/
 *
 */
public class ChineseTokenizerFactory extends BaseTokenizerFactory{
	/** 
     * 最多切分
     */  
    public static final String MOST_WORDS_MODE = "most-words";  
  
    /** 
     * 按最大切分 
     */  
    public static final String MAX_WORD_LENGTH_MODE = "max-word-length";  
  
    private String mode = null;  
    
    private TokenCollector tokenCollector = null;
  
    
    public void init(Map<String,String> args) {  
        setMode(args.get("mode"));
    }
  
    public Tokenizer create(Reader input) {  
        return new PaodingTokenizer(input, PaodingMaker.make(), tokenCollector);  
    }
    
    /**
     * 默认按最多切分
     */
    public void setMode(String mode) {  
        if (mode == null || "default".equalsIgnoreCase(mode) || MOST_WORDS_MODE.equalsIgnoreCase(mode)) {  
        	tokenCollector = new MostWordsTokenCollector();  
        } else {  
        	tokenCollector = new MaxWordLengthTokenCollector();  
        }
    }
}

已经将该类文件与paoding源码打包成了paoding-analysis3.0.jar文件,附件里有下载。


在使用庖丁分词器时,要从http://code.google.com/p/paoding/处下载词典及配置文件。 其中,paoding-dic-home.properties配置文件里,要指定词典的路径,如果词典放在classes目录下面,则词典的路径为:paoding.dic.home=classpath:dic

将这些配置文件及词典paoding-analysis-2.0.4-beta\dic 放到apache-solr3.3.0/WEB-INF/lib/classes目录下,并将paoding-analysis3.0.jar放到apache-solr3.3.0/WEB-INF/lib目录里。

然后在solr中加入paoding分词器,打开 schema.xml文件,位置:solr/home/conf/ schema.xml

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">  
      <analyzer type="index">  
<!-- 使用paoding分词器,按最多切分 mode="most-words"这个是在上面哪个类里定义好的。-->
        <tokenizer class="net.paoding.analysis.analyzer.solr.ChineseTokenizerFactory" mode="most-words"/>  
      ··· ···  
      </analyzer>  
      <analyzer type="query">  
         <tokenizer class="net.paoding.analysis.analyzer.solr.ChineseTokenizerFactory" mode="most-words"/>   
        ··· ···  
      </analyzer>  
</fieldType>  



http://localhost:8080/solr

猜你喜欢

转载自jaymsimusic.iteye.com/blog/1157941