关于IKAnalyzer
IK Analyzer是一个开源的,基于Java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。下载
http://code.google.com/p/ik-analyzer/
中文分析器的配置
1.使用IK-Analyzer。把分析器的文件夹上传到服务器。
可以使用FileZilla[root@localhost tmp]# ll
drwxr-xr-x. 3 root root 4096 5月 8 03:20 IK Analyzer 2012FF_hf1
2.需要把分析器的jar包添加到solr工程中
[root@localhost ~]# cd IK\ Analyzer\ 2012FF_hf1/[root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib
3.需要把IK-Analyzer需要的扩展词典及停用词词典及配置文件复制到solr工程的classpath
[root@localhost solr]# cd /usr/local/solr/tomcat/webapps/solr/WEB-INF如果不存在classes文件夹,则新建
[root@localhost WEB-INF]# mkdir classes
复制文件
[root@localhost ~]# cd IK\ Analyzer\ 2012FF_hf1/
[root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
注意:扩展词典、停用词词典必须是utf-8,不能使用windows记事本打开编辑
4.配置fieldType。需要在solrhome/my_core/conf/schema.xml中配置
[root@localhost solr]# cd /usr/local/solr/solrhome/my_core/conf[root@localhost conf]# vim schema.xml
末尾添加(调到末尾快捷键 shift+g)
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
4.1.业务字段配置,以下是自定义信息,以商品信息为例配置
4.2.在搜索时是否需要在此字段上进行搜素
4.3.后续的业务是否需要用到此字段
<field name="item_title" type="text_ik" indexed="true" stored="true"/><field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />
<!--复制域,把所有字段放到一个字段里,优化搜索-->
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
4.4.重新启动tomcat
[root@localhost /]# cd /usr/local/solr/tomcat[root@localhost tomcat]# bin/shutdown.sh
[root@localhost tomcat]# bin/startup.sh