solr配置中文分析器及业务字段
solr服务器配置好以后,可以参考http://blog.csdn.net/u013144287/article/details/78499485,要实现中文全文检索,由于solr默认是不支持中文的,所以现在需要手动配置,配置所使用的中文分析工具是IK-Analyzer,solr的字段必须是先定义在使用。
一、中文分析器的配置
(1)获取IK-Analyzer,并上传到服务器
(2)把IKAnalyzer2012FF_u1.jar包添加到solr工程中,执行命令
cp ./IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
(3)需要把IK-Analyzer需要的扩展词典以及停用词词典、配置文件复制到solr工程的classpath。
在目录 /usr/local/solr/tomcat/webapps/solr/WEB-INF下创建classpath
然后执行命令cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
复制这三个文件到此目录下面。
注意:ext_stopword.dic 和mydict.dic必须保存成无BOM的utf-8类型。不能够使用windows记事本编辑。
(4)配置fieldType
需要在solrhome/collection1/conf/schema.xml中配置。
使用命令编辑vi /usr/local/solr/solrhome/collection1/conf/schema.xml此文件,使用G调到文件末尾
修改如图中所示部分:增加FieldType
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
二、业务字段的配置(与自己对应数据库表所需查询关键词相关,下面只是提供一种思路)
(1)业务字段判断标准:1)在搜索时是否需要在此字段上进行搜索。例如:商品名称、商品的卖点、商品的描述
2) 后续的业务是否需要用到此字段。例如:商品id。
(2)设置业务系统Field
<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"/>
(3)然后在将业务系统Filed的内容复制进入/usr/local/solr/solrhome/collection1/conf/schema.xml文件保存
(4)重启tomcat,网址是:http://192.168.3.43:8080/solr,如图所示:
图中的标红部分即是关键词