集成分词器-----solr自带分词器和IK分词器对比

环境信息

  • 系统:CentOS Linux release 7.6.1810
  • solr:solr-7.7.2
  • java:openjdk 1.8.0_222
  • IKAnalyzer:ik-analyzer-solr7-7.x

集成IK分词器

solr安装参见博文----Apache solr入门

  1. 下载分词器jar包,github地址
  2. 将ik-analyzer-solr7-7.x.jar包上传到 $SOLR_INSTALL_HOME/server/solr-webapp/webapp/WEB-INF/lib目录下
  3. 在$SOLR_INSTALL_HOME/server/solr-webapp/webapp/WEB-INF目录下新建目录classes目录,并将IK分词器中源码的资源文件上传到该目录下,如图所示:资源文件
  4. 编辑$SOLR_INSTALL_HOME/server/solr/test_core/conf/managed-schema,引入IK分词器,在文件底部加入以下内容(PS:在schema标签内):
<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
  1. 重启solr,在界面测试,如图所示:IK分词器测试结果

集成solr自带中文分词器

  1. 分词器的jar包到solr-webapp目录下
cp $SOLR_INSTALL_HOME/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.7.2.jar $SOLR_INSTALL_HOME//server/solr-webapp/webapp/WEB-INF/lib/
  1. 编辑$SOLR_INSTALL_HOME/server/solr/my_core/conf/managed-schema文件,引入IK分词器,在文件底部加入以下内容(PS:在schema标签内):
<!-- solr自带分词器 --> 
<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="0">
	<analyzer type="index">
		<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
	  </analyzer>
	<analyzer type="query">
		<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
	</analyzer>
</fieldType>

  1. 重启solr,在界面测试,如图所示:solr自带分词器分词结果
    这么一比较起来,个人觉得IK分词器的效果更细腻一些,在关键字搜索的时候,命中率会更高一些。
发布了69 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Min_Monk/article/details/104347134