Solr使用IKAnalyzer中文分词器配置教程
文件准备
IK分词器文件有三个:分词器jar包,配置文件和分词词典
-
jar包下载地址:点击下载
-
配置文件格式为:
<?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">dic.txt;</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic;chinese_stopword.dic</entry>
</properties>
- 分词词典格式为:
开始配置
1.将分词器jar包放到自定义lib目录下
这里需要在solrconfig.xml中配置自定义目录路径:
<!--路径根据自己实际情况修改 -->
<lib dir="${solr.solr.home:}/lib/" />
2.将IKAnalyzer.cfg.xml配置文件放到core的conf目录下
3.将分词词典放到随意目录下,记住路径
例如:/usr/local/data/dic.txt
4.修改IKAnalyzer.cfg.xml配置中的词典路径,和3一致
<entry key="ext_dict">/usr/local/data/dic.txt;</entry>
5.修改schema.xml配置文件,添加分词类型
<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100" multiValued="true">
<analyzer type="index">
<tokenizer useSmart="false" useParagraph="true" class="org.wltea.analyzer.solr.IKTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
</analyzer>
<analyzer type="query">
<tokenizer useSmart="false" useParagraph="false" class="org.wltea.analyzer.solr.IKTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
</analyzer>
</fieldType>
6.修改solr.in.sh配置文件
由于我们的分词词典放到了非core目录下,solr启动时无法读取非core目录文件下的文件,所以我们要添加允许读取非目录文件的配置:
SOLR_OPTS="$SOLR_OPTS -Dsolr.allow.unsafe.resourceloading=true"
如果分词词典放到…/solr-webapp/webapp/WEB-INF/classes/目录下,则不需要修改上述文件。
IKAnalyzer.cfg.xml配置文件为相对路径即可
<entry key="ext_dict">dic.txt;</entry>