zoukankan      html  css  js  c++  java
  • 利用SOLR搭建企业搜索平台 之十一(中文分词之IK)

    在经过使用了庖丁以后,这里说说怎么将目前很火很流行的IK集成进SOLR,其实方法真的很简单,比paoding方便不少。这里很感谢IK的作者,蓝山咖啡,很感谢你为中文分词做出的贡献。 作者博客:http://linliangyi2007.javaeye.com

    入正题:
    1》请先去作者博客参看IK下载地址,主要就是一个IKAnalyzer3.1.1Stable.jar。我这里用的是最新版!

    Java代码
    1. package com.yeedoo.slor.tokenizer;  
    2.   
    3. import java.io.Reader;  
    4.   
    5. import org.apache.lucene.analysis.TokenStream;  
    6. import org.apache.solr.analysis.BaseTokenizerFactory;  
    7. import org.wltea.analyzer.lucene.IKAnalyzer;  
    8.   
    9. public class ChineseTokenizerFactory extends BaseTokenizerFactory {  
    10.   
    11.     @Override  
    12.     public TokenStream create(Reader reader) {  
    13.         return new IKAnalyzer().tokenStream("text", reader);  
    14.     }  
    15.       
    16. }  


    从代码就可以看得出来真的很方便!将它打包放入solr.war中同时还有IK的jar包。如果你不想打包,请去附件下载已经打好的包。

    2》配置文件
    Xml代码
    1. <fieldType name="text" class="solr.TextField" positionIncrementGap="100">  
    2.             <analyzer type="index">  
    3.                 <tokenizer class="com.yeedoo.slor.tokenizer.ChineseTokenizerFactory" />  
    4.                 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />  
    5.                 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" />  
    6.                 <filter class="solr.LowerCaseFilterFactory" />  
    7.                 <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt" />  
    8.                 <filter class="solr.RemoveDuplicatesTokenFilterFactory" />  
    9.             </analyzer>  
    10.             <analyzer type="query">  
    11.                 <tokenizer class="com.yeedoo.slor.tokenizer.ChineseTokenizerFactory" />  
    12.                 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />  
    13.                 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />  
    14.                 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1" />  
    15.                 <filter class="solr.LowerCaseFilterFactory" />  
    16.                 <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt" />  
    17.                 <filter class="solr.RemoveDuplicatesTokenFilterFactory" />  
    18.             </analyzer>  
    19.         </fieldType>  

    关于这里的配置文件,如果你更详细的了解意思,请参见我的另一篇博客,博客地址:http://lianj-lee.javaeye.com/blog/424474

    3》如果在启动tomcat没有报错的情况下,可以去solr的admin那里尝试看看该分词器的效果,效果如下图:

    这样就ok了。简单、方便、“无公害”... ...
  • 相关阅读:

    Qt5开发实战学习——遇到的知识
    VS2017+Qt5.9.3,VS无法打开纯Qt工程(pro文件)
    QT的OpenGL
    QT之pro文件
    虚拟机网卡还原默认设置
    qt编译QOCI驱动连接oracle数据库
    关于数据库Oracle的创建、连接和Qt的小结
    联想G50-70恢复出厂设置
    移植解决方案到中标麒麟(一)——遇到的一些问题
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1567620.html
Copyright © 2011-2022 走看看