solr中文分词

solr是国外的人做的一个提供关键字搜索的一个功能,所以对中文不支持,于是国人就自己做了一个IKAnalyzer,但是Ik分词也不一定能分到自己想要的词,也就是说词库里面的组词不一定是符合自己的词,但是他们留了后门,可以自己管理词库的,操作步骤如下:

1.下载Ik包 IK Analyzer2012FF ,可以看出这个包已经很久没有出新版本了

2.在schema.xml文件中添加IK分词。schema.xml的由来之前说过,是managed-schema文件的化身,所以他们两个文件要保持一直

<!-- 我添加的IK分词 -->
    <fieldType name="text_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>

3.前面的搭建环境,这里不再重复介绍了。在solr的tomcat中,webapp/solr/WEB-INF/classes/把IK的xml放进去----》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">ext.dic;</entry>
    
    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopword.dic;</entry>
</properties>

然后在IKAnalyzer.cfg.xml的同级目录也就是classes下面创建ext.dic,ext.dic里面就可以添加自己的词库。

以前“恒大”这个词被分出来,只有一个“恒”,这次我把“恒大”加进了ext.dic里面然后在solr的管理界面中使用配置了text_ik类型的字段分词,可以看到是分出来了


猜你喜欢

转载自blog.csdn.net/meix505/article/details/74519144