Solr加入中文分词器。

        中文分词在solr里面是没有默认开启的,需要我们自己配置一个中文分词器。目前可用的分词器有smartcn,IK,Jeasy,庖丁。其实主要是两种,一种是基于中科院ICTCLAS的隐式马尔代夫HMM算法的中文分词器,如smartcn,ictclas4j,优点是分词准确度高,缺点是不能使用用户自定义词库;另一种是基于最大匹配的分词器,如IK,Jeasy,庖丁,优点是可以自定义词库,增加新词,缺点是分出来的垃圾词较多。各有优缺点看应用场合自己衡量选择吧。

        下面给出两种分词器的安装方法,任选其一即可,推荐第一种,因为smartcn就在solr发行包的contrib/analysis-extras/lucene-libs下,就是lucene-analyzers-smartcn-4.7.0.jar,首选在solrconfig.xml中加一句引用analysis-extras的配置,这样我们自己加入的分词器才会引用到solr中。

<lib dir = "../../../contrib/analysis-extras/lib" regex = ".*\.jar" />

smartcn分词器的安装

        首先将发行包的contrib/analysis-extras/lucene-libs/lucene-analyzers-4.7.0.jar复制到\solr\contrib\analysis-extras\lib下,在solr本地应用文件夹下,打开/solr/conf/scheme.xml,编辑text字段类型如下,添加以下代码到scheme.xml中的相应位置,就是找到fieldType定义的那一段,在下面多添加这一段就好。

<fieldType name = "text_smartcn" class = "solr.TextField" positionIncrementGap = "0">

<analyzer type = "index">

<tokenizer class = "org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory" />

<filter class = "org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory" />

</analyzer>

<analyzer type = "query">

<tokenizer class = "org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory" />

<filter class = "org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory" />

</analyzer>

</fieldType>

        如果需要检索某个字段,还需要再schema.xml下面的field中,添加指定的字段,用text_smartcn作为type的名字,来完成中文分词。如text要实现中心检索的话,就要做如下的配置:

<field name = "text" type = "text_smartcn" indexed = "true" stored = "false" multiValued = "true" />

IK分词器的安装

        首先要去下载IKAnalyzer的发行包。

        下载后解压出来文件中的三个复数到\solr\contrib\analysis-extras\lib目录中。

  • IKAnalyzer2012FF——u1.jar                   分词器jar包
  • IKAnalyzer.cfg.xml                                      分词器配置文件
  • Stopword.dic                                              分词器停词字典,可自定义添加内容

         复制后就可以像smartcn一样的进行配置schema.xml了。

<fieldType name = "text_ik" class = "solr.TextField" >

<analyzer class = "org.wltea.analyzer.lucene.IKAnalyzer" />

</fieldType>

<field name = "text" type = "text_ik" indexed= "true" stored = "false" multiValued = "true" />

         现在来验证下是否添加成功,首先使用StartSolrJetty来启动solr服务。

         启动过程中如果配置出错,一般有两个原因:

  • 一是配置的分词器jar找不到,也就是你没有复制jar包到\solr\contrib\analysis-extras\lib目录下。
  • 二十分词器版本不对导致的分词器接口API不一样出的错,要是这个错的话就在检查分词器的相关文档,看一下支持的版本是否一样。

         如果在启动过程中没有报错的话说明配置成功了,我们可以进入到http://localhost:8080/solr地址进行测试一下刚加入的中文分词器,在首页的Core Selector中选择你配置的Core后点击下面的Analysis,在Analyse Fieldname / FieldType里选择你刚才设置的字段名称或是分词器类型,在Field Value(index)中输入:中国人,点击右面的分词就行了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值