Solr设置IK分词器

话不多说,首先当然准备资料啦:

                 IKAnalyzer2012_FF.jar

                 IKAnalyzer.cfg.xml  (IK扩展分词和扩展停止词的设置)

                 mydict.dic(扩展分词词典)

                 stopword.dic(扩展停止词词典)

说明:第一个是jar包,是支持中文分词功能的jar包,需要在tomcat/webapps/solr/WEB-INF/lib下导入;下面三个分别是扩展分词和停止分词的配置文件;扩展分词词典;扩展停止词词典;这三个都需自己编写;咋一看好像很复杂的样子,其实很简单哈,往下看你就会很快理解。

IKAnalyzer.cfg.xml编写如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">mydict.dic;</entry> 

<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic;</entry> 

</properties>

mydict.dic(扩展分词词典)编写如下:

高富帅
白富美
(随便编写扩展分词)

stopword.dic(扩展停止词词典)编写如下:

我
是
你
是
(随便写)

最后,在WEB-INF目录下面创建classes文件夹(要是没有的话),把IKAnalyzer.cfg.xml,mydict.dic,stopword.dic三个文件放到classes文件夹下;
以上都写好了,还差最后一步,那就是配置schema.xml文件啦,在这里需要配置两个东西,分别是:分词字段类型+需要分词的字段;如下,打开schema.xml编辑,在最后加上

<!--配置中文分词器-->
    <fieldType name="test_ik" class="solr.TextField">   
                <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
                <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
    </fieldType>

    <field name="content_ik" type="test_ik" indexed="true" stored="true" multiValued="false" />

<field name="ID" type="test_ik" indexed="true" stored="true" />
<field name="地区" type="test_ik" indexed="true" stored="true" />
..........注意字段type也要修改成test_ik
..........
..........

重启tomcat访问,发现分词成功如下:
这里写图片描述

如果tomcat报错或者不成功,可能原因是mydict.dic(扩展分词词典)和stopword.dic(扩展停止词词典)这两个没有保存为utf8编码类型,用记事本打开,另存为页面修改编码为utf8。(终于写好了我擦~~~)

猜你喜欢

转载自blog.csdn.net/weixin_36413887/article/details/79556350