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


    solr分词过程:

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

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

    solr6.3.0自带中文分词包,在 solr-6.3.0contribanalysis-extraslucene-libslucene-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.0serversolr-webappwebappWEB-INFlib

    然后修改core的配置文件:solr-6.3.0serversolr estconfmanaged-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.0serversolr-webappwebappWEB-INFlib目录下,

    然后修改core的配置文件:solr-6.3.0serversolr estconfmanaged-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按钮:

    看到汉字转成拼音了。

  • 相关阅读:
    P1182 数列分段`Section II`
    算法整理:Floyd_多源最短路
    【FBI WARNING】递归(高级数据结构的基础)
    【FBI WARNING】DP 从看透到看开
    两个例题
    结构体
    环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
    生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
    猜数字游戏的提示(Master-Mind Hints, UVa 340)
    回文词(Palindromes, UVa401)
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/8254264.html
Copyright © 2020-2023  润新知