Solr 3.5 + Tomcat7 + mmseg4j 配置并运行

机器上已安装 : Tomcat 7    jdk1.7

访问 http://www.apache.org/dyn/closer.cgi/lucene/solr , 在这个网址里选择一个路径 , 下载 solr 3.5 的版本

1、将将解压后的solr中的lucene\apache-solr-3.5.0\example\solr目录下的文件拷贝到要作为服务器的位置,我是放在这个路径下的:D:\luceneData\solr\home

2、将相应的solr的web程序也拷贝出来,即lucene\apache-solr-3.5.0\example\webapps下的solr.war拷贝到D:\luceneData\solr\server
3、修改solr-->home/conf文件夹中的solrconfig.xml,设置data的路径
   
 <dataDir>${solr.data.dir:D:\luceneData\solr\home\data}</dataDir>


4、设置相应的Tomcat的Context(server.xml)
 <Context path="/solr" docBase="D:\luceneData\solr\server\solr" reloadable="false">
 <Context>


5、为Context设置相应的环境变量,说明solr的主目录的地址
<Context path="/solr" docBase="D:\luceneData\solr\server\solr" reloadable="false">
              <Environment name="solr/home" type="java.lang.String" value="D:\luceneData\solr\home" override="true"/>
<Context>


6、启动:报错Caused by: java.lang.ClassNotFoundException: solr.VelocityResponseWriter
<queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" enable="${solr.velocity.enabled:true}"/>

将这段代码注释(solrconfig.xml中)。取消VelocityResponseWriter这种输出格式。

验证:访问http://localhost:8088/solr/,如果出现Welcome to Solr!,说明我们配置solr成功~

7、加入中文分词( schema.xml )

    7.1将中文分词的包拷贝到D:\luceneData\solr\server\solr\WEB-INF\lib目录下


7.2将中文分词添加到FieldType中

<fieldType name="textComplex" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
      </analyzer>
    </fieldType>
     <fieldType name="textMaxWord" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
      </analyzer>
    </fieldType>
     <fieldType name="textSimple" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="dic"/>
      </analyzer>
</fieldType>



dicPath 指定词库位置(每个MMSegTokenizerFactory可以指定不同的目录,当是相对目录时,是相对 solr.home 的目录),mode 指定分词模式(simple|complex|max-word,默认是max-word)。我们也可以自己定义绝对路径。


FieldType类型 , name 是这个 FieldType 的名称 , class 指向了 org.apache.solr.analysis 包里面对应的 class 名称 , 用来定义这个类型的定义 。在 FieldType 定义的时候最重要的就是定义这个类型的数据在建立索引和进行查询的时候要使用的分析器analyzer,包括分词和过滤 。
Fields 字段 :  结点内定义具体的字段(类似数据库中的字段) , 就是 field , 包含 name , type(为之前定义过的各种FieldType) , indexed(是否被索引) , stored(是否被存储) , multiValued(是否有多个值)
copeField(赋值字段): 建立一个拷贝字段 , 将所有的全文字段复制到一个字段中 , 以便进行统一的检索 。



你可能感兴趣的:(Solr 3.5 + Tomcat7 + mmseg4j 配置并运行)