solr 3.4配置中文分词IKAnalyzer3.2.8

来源:互联网 发布:python的安装步骤 编辑:程序博客网 时间:2024/05/24 01:47

最近在折腾solr,现在需要让其支持中文分词,在网上看到了很多关于使用paoding中文分词的文章,但是测试很久都不行,而且paoding这个分词工具很久没更新了,最新版本是paoding-analysis-2.0.4-beta.zip,于是在想有没有其它的分词工具可以使用,后来找到了IKAnalyzer,仔细看了下,感觉很不错,关键是配置很容易,参照一篇文章中的例子http://blog.sina.com.cn/s/blog_722364920100v80u.html(在这里非常感谢这位楼主的文章),就跑起来了。在这里特意把其中关键的部分记载下来。

 

1、下载IKAnalyzer,并将其放置到solr/WEB-INF/lib目录下

IKAnalyzer 下载地址:http://code.google.com/p/ik-analyzer/downloads/detail?name=IKAnalyzer3.2.8%20bin.zip&can=2&q=

 

2、修改solr中conf目录中的schema.xml配置文件,添加如下内容:

 

 

Xml代码  收藏代码
  1. <!-- IKAnalyzer3.2.8 中文分词-->  
  2.     <fieldType name="text" class="solr.TextField">  
  3.         <analyzer type="index">  
  4.             <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory"  isMaxWordLength="false"/>  
  5.                 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />  
  6.                 <filter class="solr.LowerCaseFilterFactory"/>  
  7.         </analyzer>  
  8.         <analyzer type="query">  
  9.             <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true"/>  
  10.                 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />  
  11.                 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>  
  12.                 <filter class="solr.LowerCaseFilterFactory"/>  
  13.         </analyzer>     
  14.     </fieldType>  
 

如果采用上面的这种方式,那么相当于我们重新定义了一种fieldType,在后面的fields中需要把那些text_general修改为text,为了避免这种麻烦,我们可以修改原有的text_general类型:

找到fieldType name="text_general" ,修改其中的<tokenizer class="solr.StandardTokenizerFactory"/>为

<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true"/>

这样就不需要修改后面的配置了。

 

3、测试

在浏览器中打开http://127.0.0.1:8080/solr/admin/analysis.jsp

在Field中选择type,在后面的输入框中输入text

在Field Value(Index)中输入:solr 中使用IKAnalyzer 中文分词

在Filed Value(Query)中输入:中文分词

最后点击Analyze,就会看到测试结果:


 

 

0 0