博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
solr4.3默认的分词器
阅读量:4187 次
发布时间:2019-05-26

本文共 1996 字,大约阅读时间需要 6 分钟。

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  
C:\桌面\solr-4.3.0\contrib\analysis-extras\lucene-libsF:\eclipse10tomcat\webapps\solr\WEB-INF\libsmartcn的同步发行包: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://vajoi.baihongyu.com/

你可能感兴趣的文章
Spring 架构
查看>>
给你感情保鲜
查看>>
ORCALE 优化常青树
查看>>
struts 2.3.7+spring3.2.0+MyBatis3.1 整合
查看>>
MyBatis3.1.1+Spring3.1.2+Struts2.3.4.1
查看>>
Java获得CPU序列号和网卡Mac地址
查看>>
Apache Sentry架构介绍
查看>>
Oozie简介
查看>>
大数据流难以管理?借助StreamSets来驾驭
查看>>
基于Flume的美团日志收集系统(一)架构和设计
查看>>
基于Flume的美团日志收集系统(二)改进和优化
查看>>
JobTracker和TaskTracker概述
查看>>
Sqoop详细介绍包括:sqoop命令,原理,流程
查看>>
sqoop的安装与使用
查看>>
HIVE安装
查看>>
LDAP 验证、新增、修改、查询用户
查看>>
Docker到底是什么?
查看>>
Docker快速安装部署
查看>>
饿了么30岁程序员害怕被淘汰,无奈转行!
查看>>
马云继996/669言论后又发话:休假很重要!
查看>>