- 爱易网页
-
数据库教程
- solr环境配置、汉语言分词、数据库
日期:2014-05-16 浏览次数:20517 次
solr环境配置、中文分词、数据库
一、配置solr环境
1、 下载solr http://www.apache.org/dyn/closer.cgi/lucene/solr/
此处用的是3.5 解压到D盘D:/solr/apache-solr-3.5.0
2、修改tomcat conf/server.xml
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"URIEncoding="UTF-8" />
添加编码的配置 URIEncoding="UTF-8" (如不添加,中文检索时因为乱码搜索不到)
3、 配置solr
Tomcat conf/Catalina/localhost下添加solr.xml
内容:
<Context docBase="D:/solr/apache-solr-3.5.0/dist/apache-solr-3.5.0.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="D:/solr/apache-solr-3.5.0/example/solr" override="true" />
</Context>
4、 启动tomcat 输入http://localhost:8080/solr/ 出现欢迎界面表示成功
二、中文分词配置
1、 下载分词器: http://code.google.com/p/mmseg4j/
2、下载词库:http://code.google.com/p/mmseg4j/downloads/detail?name=data.zip&can=2&q
3、将解压后的mmseg4j-1.8.5目录下的mmseg4j-all-1.8.5.jar拷贝到Tomcat的webapps/solr/WEB-INF/lib目录下。
4、添加词库:在D:/solr/apache-solr-3.5.0/example/solr目录下新建dic文件夹,将解压后的data目录下的words.dic拷贝到D:/solr/apache-solr-3.5.0/example/solr/dic目录下。
5、 更改schema.xml(D:/solr/apache-solr-3.5.0/example/solr/conf/)文件,使分词器起到作用。
在schema.xml的<types>、<fields>和部分新增如下配置:
注:dicPath=" "是你的词库路径。
<!–mmseg4j field types–>
<fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:/solr/apache-solr-3.5.0/example/solr/dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="D:/solr/apache-solr-3.5.0/example/solr/dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="D:/solr/apache-solr-3.5.0/example/solr/dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<!– mmseg4j field –>
<field name="simple" type="textSimple" indexed="true" stored="true" multiValued="true"/>