solr 中文分词器IKAnalyzer和拼音分词器pinyin

Posted @yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr 中文分词器IKAnalyzer和拼音分词器pinyin相关的知识,希望对你有一定的参考价值。

solr分词过程:

Solr Admin中,选择Analysis,在FieldType中,选择text_en

左边框输入 “冬天到了天气冷了小明不想上学去了”,点击右边的按钮,发现对每个字都进行分词。这不符合中国人的习惯。

solr6.3.0自带中文分词包,在 \\solr-6.3.0\\contrib\\analysis-extras\\lucene-libs\\lucene-analyzers-smartcn-6.3.0.jar,但是不能自定义词库

好在我们有IKAnalyzer(已无人更新,目前版本是2012)和pinyin分词插件。

IKAnalyzer安装

IKAnalyzer下载地址:https://github.com/EugenePig/ik-analyzer-solr5

因为原始的IKAnalyzer已经不支持solr5以后的版本,这里是修改过后的

用git clone到本地或者直接下载zip到本地,然后执行mvn clean instal(Java8),或者mvn clean -Djavac.src.version=1.7 -Djavac.target.version=1.7 install(jdk1.7)

执行完,在项目 /target 目录下,看到jar文件

将改jar文件copy到 solr目录:\\solr-6.3.0\\server\\solr-webapp\\webapp\\WEB-INF\\lib

然后修改core的配置文件:\\solr-6.3.0\\server\\solr\\test\\conf\\managed-schema

添加如下配置:

<fieldType name="text_ik" class="solr.TextField">   
  <analyzer type="index">
    <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" />
  </analyzer>
</fieldType>

或者

<fieldType name="text_ik" class="solr.TextField">   
  <analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
  <analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
</fieldType>

保存重启solr,到选择test核心-Analysis,进入分词页面,输入“冬天到了天气冷了小明不想上学去了”,FieldType选择“text_cn”,点击Analyse Value按钮:

看到已经分词中文成功了。

pinyin安装

pinyin下载地址:http://files.cnblogs.com/files/wander1129/pinyin.zip

 下载后将2个jar文件copy到\\solr-6.3.0\\server\\solr-webapp\\webapp\\WEB-INF\\lib目录下,

然后修改core的配置文件:\\solr-6.3.0\\server\\solr\\test\\conf\\managed-schema,添加:

<!-- 配置拼音分词 pinyin-->
    <fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">
        <analyzer type="index">
            <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
            <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
            <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
        </analyzer>
        <analyzer type="query">
            <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
            <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
            <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
        </analyzer>
    </fieldType>

重启solr

到选择test核心-Analysis,进入分词页面,输入“冬天到了天气冷了小明不想上学去了”,FieldType选择“text_pinyin”,点击Analyse Value按钮:

 

看到汉字转成拼音了。

以上是关于solr 中文分词器IKAnalyzer和拼音分词器pinyin的主要内容,如果未能解决你的问题,请参考以下文章

Solr配置中文分词器IKAnalyzer及增删改查调用

solr7.0.0+IKAnalyzer中文分词器V2012+tomcat9

Solr配置Ikanalyzer分词器

13.solr学习速成之IK分词器

lucene_07_solr使用IK分词器

solrcloud配置中文分词器ik