淑昊柠 发表于 2016-12-16 08:01:21

solr 3.4配置中文分词IKAnalyzer3.2.8

  最近在折腾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配置文件,添加如下内容:

<!-- IKAnalyzer3.2.8 中文分词-->
<fieldType name="text" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory"isMaxWordLength="false"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>   
</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,就会看到测试结果:
  

  
页: [1]
查看完整版本: solr 3.4配置中文分词IKAnalyzer3.2.8