solr4.9之配置中文分词smartcn

2019-03-27 01:17|来源: 网路

solr4.3默认的分词器是一元分词器,这个本来就是对英文进行分词的,英文大部分就是典型的根据空格进行分词,而中文如果按照这个规则,那么显然是要有很多的冗余词被分出来,一些没有用的虚词,数词,都会被分出来,影响效率不说,关键是分词效果不好,所以可以利用solr的同步发行包smartcn进行中文切词,smartcn的分词准确率不错,但就是不能自己定义新的词库,不过smartcn是跟solr同步的,所以不需要额外的下载,只需在solr的例子中拷贝进去即可,下面给出路径图和安装solr4.3的smartcn分词过程
无论安装那种分词器,大部分都有2个步骤,第一步是拷贝jar包到solr的lib中



Java代码   收藏代码
  1. C:\桌面\solr-4.3.0\contrib\analysis-extras\lucene-libs  
  2. F:\eclipse10tomcat\webapps\solr\WEB-INF\lib  
  3. smartcn的同步发行包:lucene-analyzers-smartcn-4.3.0.jar  



这个弄好之后,就需要在schemal.xml文件中,注册分词器了



Java代码   收藏代码
  1. <fieldType name="text_smart" class="solr.TextField" positionIncrementGap="100">  
  2.       <analyzer type="index">  
  3.        <!-- 此处需要配置主要的分词类 -->  
  4.         <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>  
  5.         <!--    
  6.         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />  
  7.         <filter class="solr.LowerCaseFilterFactory"/>   
  8.         -->  
  9.         <!-- in this example, we will only use synonyms at query time  
  10.         <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>  
  11.       -->  
  12.           
  13.         <filter class="solr.SmartChineseWordTokenFilterFactory"/>  
  14.             
  15.       </analyzer>  
  16.       <analyzer type="query">  
  17.       <!-- 此处配置同上 -->  
  18.         <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>  
  19.             <!--   
  20.         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />  
  21.         <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>  
  22.         <filter class="solr.LowerCaseFilterFactory"/>  
  23.         -->  
  24.         <filter class="solr.SmartChineseWordTokenFilterFactory"/>  
  25.            
  26.       </analyzer>  
  27.     </fieldType>  




最后在引用一下字段类型就可以了


Java代码   收藏代码
  1. <field name="sma" type="text_smart" indexed="true" stored="true" multiValued="true"/>  



访问http://localhost:8080/solr/#/collection1点击分词分析即可查看分词效果




转自:http://blog.csdn.net/u012027091/article/details/37931455

相关问答

更多
  • import java.io.Reader; import java.io.StringReader; import org.apache.lucene.analysis.*; import org.apache.lucene.analysis.cjk.CJKAnalyzer; import org.apache.lucene.analysis.cn.ChineseAnalyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; i ...
  • 现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。 从基于字符串匹配的分词方法,中文分词的实现思路如下: 1 提供一个词典 2 在字符串中正向扫描或者反向扫描匹配 将字符串中多个字符取出后进行词典匹配 这个是效率最低的方式 另外就是基于统计方式,记录字与字一同出现的频率,实现分词
  • ik-analyzer查查这个吧,是一个JAVA分词器 但是你说的处理完保存在另一个文件里这些就得你自己写代码处理了。IK只提供分词功能
  • 这两天正好在玩lucene,没用庖丁 分词,主要是嫌它要配置环境,麻烦 下面是demo,记得要加lucene-core-2.3.2.jar和lucene-Analyzer.jar以及IKAnalyzer.jar这几个包,有问题call我 import java.io.Reader; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.StopFil ...
  • 建议的来源使用中文词库
  • 可以看下这个Solr安装部署,里边包括安装、部署、添加中文分词等等
  • Solr 是一个可供企业使用的、基于 Lucene 的开箱即用的搜索服务器。对Lucene不熟?那么建议先看看下面两篇文档:   实战Lucene,第 1 部分: 初识 Lucene: http://www.ibm.com/developerworks/cn/java/j-lo-lucene1/   用Lucene加速Web搜索应用程序的开发: http://www.ibm.com/developerworks/cn/web/wa-lucene2/   一、 solr介绍   solr是基于Lucene J ...
  • Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。 用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
  • StandardAnalyzer是可以用于中文分词,但它是一元分词,机械地将一个汉字做为一个词元来切分的,速度慢不说,语义也没有了,当然应该能保证查全率,呵呵. ChineseAnalyzer比它好一点,也相当于一元分词。 lucene的第三方分词包有很多,上面两个不建议使用。可以去了解: IK_CAnalyzer 庖丁解牛分词器 JE分词器
  • 中文