(转)淘淘商城系列——中文分析器IK-Analyzer的使用
在Solr中默认是没有中文分析器的,需要手工配置,配置一个FieldType,在FieldType中指定使用的中文分析器。另外,Solr中的字段(即业务域)必须先定义后使用。下面我们先把中文分析器配好,这儿使用的中文分析器是IK Analyzer。
我们首先应下载IK Analyzer中文分析器,下面是我所下载的IK Analyzer。 
接着要将IK
Analyzer
2012FF_hf1目录上传到Linux系统上去,怎样将目录上传到Linux系统上,我想我已经说的要吐了,所以这儿不再浪费口舌。与以往一样,我把IK
Analyzer 2012FF_hf1目录上传到了用户主目录(即root)下,如下图所示。 
我们可以到IK Analyzer 2012FF_hf1目录下查看都有哪些文件,如下图所示。 
- doc:IK Analyzer的文档。
- ext_stopword.dic:停用词词典。在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop
Words(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。但是,并没有一个明确的停用词表能够适用于所有的工具,甚至有一些工具是明确地避免使用停用词来支持短语搜索的。
- IKAnalyzer.cfg.xml:配置文件。
- mydict.dic:扩展词典。
- IKAnalyzer2012FF_u1.jar:核心包。
我们接下来把中文分析器的jar包添加到solr工程中。 
紧接着我们需要先在/usr/local/solr/tomcat/webapps/solr/WEB-INF目录下创建一个classes目录,然后把IK Analyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的classpath下。 
注意:扩展词典及停用词词典的字符集必须是utf-8,不能使用windows记事本编辑。
下面我们需要配置FieldType,在哪儿进行配置呢?我们应在solrhome/collection1/conf/schema.xml中配置,我们先到schema.xml所在的目录,如下图所示。 
然后编辑schema.xml,使用Shift+G就可以直接到文件的末尾,然后添加如下内容:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
要实现商品搜索,我们得配置业务域,在Solr中,这些业务域必须得先定义后使用,所以我们应该先定义业务域,如果要定义业务域,我们得先想想看要把哪些域导入到索引库里面去。在淘淘商城的商品搜索功能当中,我们可能用到的字段如下,由于数据库tb_item表中id字段和Solr中的id同名,我们便使用Solr的id代替商品id,也就是说,我们还需要在schema.xml文件中配置6个业务字段,最后,我们一共要向schema.xml文件中配置7个业务字段,它们分别是:
1、商品Id
2、商品标题
3、商品卖点
4、商品价格
5、商品图片
6、分类名称
7、商品描述
因此,我们在schema.xml文件的末尾添加的业务字段如下所示。
<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" />
配置业务域时,type指定使用自定义的FieldType。
我们配置完业务域后,还要配置复制域,即在schema.xml的末尾添加复制域,如下所示,复制域的好处是可以提高查询效率,原来需要查询多个字段的,现在只需要查询一个字段就可以了(因为各个字段都把内容复制到一块儿了,查询也就方便了)。
<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"/>
最后,我们只须重启tomcat,重启之后,我们看看字段是否有我们刚才定义的几个,发现是有的,如下图所示。 
下面我们来测试中文分词器是否可用,我们选择item_desc字段,我们在Field Value当中添加一段中文,然后点击”Analyse Values”按钮,就可以开始分析了,分析结果如下图所示。 
可以看到,我们的中文分析器配置成功了。
(转)淘淘商城系列——中文分析器IK-Analyzer的使用的更多相关文章
- solr创建业务域以及指定中文分析器IK
第一步:把中文分析器添加到工程中. 1.把IKAnalyzer2012FF_u1.jar添加到solr工程的lib目录下 2.把扩展词典.配置文件放到solr工程的WEB-INF/classes目录下 ...
- (转) 淘淘商城系列——CMS内容管理系统工程搭建
http://blog.csdn.net/yerenyuan_pku/article/details/72825801 淘淘商城系列——CMS内容管理系统工程搭建 上文我们一起搭建了表现层中的商城门户 ...
- (转) 淘淘商城系列——使用FastDFS-Client客户端进行上传图片的测试
http://blog.csdn.net/yerenyuan_pku/article/details/72804018 不久之前,我们实现了商品的类目选择这个功能,但这只是万里长征的第一步,我们还有很 ...
- (转)淘淘商城系列——分布式文件系统FastDFS
http://blog.csdn.net/yerenyuan_pku/article/details/72801777 商品添加的实现,包括商品的类目选择,即商品属于哪个分类?还包括图片上传,对于图片 ...
- (转) 淘淘商城系列——Redis集群的搭建
http://blog.csdn.net/yerenyuan_pku/article/details/72860432 本文我将带领大家如何搭建Redis集群.首先说一下,为何要搭建Redis集群.R ...
- (转)淘淘商城系列——使用maven tomcat插件启动聚合工程
http://blog.csdn.net/yerenyuan_pku/article/details/72672389 上文我们一起学习了如何使用maven tomcat插件来启动web工程,本文我们 ...
- (转)淘淘商城系列——使用maven构建工程
http://blog.csdn.net/yerenyuan_pku/article/details/72669269 开发工具和环境 这里,我统一规范一下淘淘商城的开发工具和环境,如下: Eclip ...
- (转)淘淘商城系列——KindEditor富文本编辑器的使用
http://blog.csdn.net/yerenyuan_pku/article/details/72809794 通过上文的学习,我们知道了怎样解决KindEditor富文本编辑器上传图片时的浏 ...
- (转) 淘淘商城系列——解决KindEditor上传图片浏览器兼容性问题
http://blog.csdn.net/yerenyuan_pku/article/details/72808229 上文我们已实现了图片上传功能,但是有个问题,那就是对浏览器兼容性不够,因为Map ...
随机推荐
- 【Unity】UGUI控件大小适配父容器
需求:需要把UGUI控件的尺寸调整到指定大小,如匹配至设计的分辨率.或者说想制定覆盖全屏的背景图片. 做法:将这个UGUI控件的RectTransform组件里的Anchor Presets设为预设的 ...
- 【C#】往异步下载的方法传递自定义完成事件
封装自定义的异步下载方法时,正常情况下是这样的: /// <summary> /// 异步方法:联网下载文件,保存到本地. /// </summary> /// <par ...
- rp2833 网卡以及串口与接插件位置关系
P13 eth0 (电口--兼容光口,如果使用光口,请将去掉U31以及P13) p12 eth1 P9 /dev/ttyS3 调试口 P10-1 /dev/ttyS2 r ...
- openwrt内核配置选项添加
摘自:http://blog.csdn.net/weiniliuchao/article/details/50295527 增加内核配置选项 openwrt的.config文件中,关于内核的选项都是形 ...
- 机器学习:Mean Shift聚类算法
本文由ChardLau原创,转载请添加原文链接https://www.chardlau.com/mean-shift/ 今天的文章介绍如何利用Mean Shift算法的基本形式对数据进行聚类操作.而有 ...
- HTML(二):表格元素
表格元素的作用:用来格式化显示数据. 一.表格的基本结构 表格的基本语法:<TABLE border="设置表格边框尺寸大小" width="" cell ...
- mac配置完ssh依然提示"Enter passphrase for key"解决方法
使用Git,每次都提示输入命令. 这个问题折磨很久,明明已经配置过ssh了,可是每次还要提示输入密码,从网上查查,最后一条命令解决问题: 问题提示: Enter passphrase for key ...
- dvi 中的内容居中
text-align:right; 文本居中 line-height:35px;*垂直居中*
- 关于Cocos2d-x中自己定义的类的名字和Cocos2d-x引擎库中的类的名字重复的解决方法
方法一: 修改自己定义的类的名字,VS2013中可以用Ctrl+H来替换某个特定的单词,Ctrl+F是用来查询某个单词所在的位置或者有没有存在. 方法二: 1.给自己定义的类的.h和.cpp文件的整体 ...
- am335x LCD参数更改
/******************************************************************** * am335x LCD参数更改 * * 本文记录am335 ...