在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 ...
随机推荐
-
python requests 安装
在 windows 系统下,只需要输入命令 pip install requests ,即可安装. 在 linux 系统下,只需要输入命令 sudo pip install requests ,即可 ...
-
[C#] 语法之Attribute
在c#中,定义类的成员,可以定义Property称为属性.Attribute就称为特性. 在FCL中,有内置的Attribute.如: Condition[Attribute]:在什么条件可以调用.( ...
-
hdu 1689 Just a Hook
http://acm.hdu.edu.cn/showproblem.php?pid=1698 Just a Hook Time Limit: 4000/2000 MS (Java/Others) ...
-
hdu2304Electrical Outlets
Problem Description Roy has just moved into a new apartment. Well, actually the apartment itself is ...
-
cocos2dx-3.0(13)------SpriteBatchNode与SpriteFrameCache渲染速度
大家都知道一个游戏里面会有大量的图片,每一个图片渲染是须要时间的,以下分析两个类来加快渲染速度,加快游戏执行速度 一.SpriteBatchNode 1.先说下渲染 ...
-
如何精准高效的实现视觉稿?------前端开发辅助工具AlloyDesigner使用介绍
AlloyDesigner:http://alloyteam.github.io/AlloyDesigner/ 介绍:AlloyDesigner是腾讯开发的一款工具,其在页面构建过程中,直接嵌入开发的 ...
-
关于修改了db2 instance下面文件夹权限导致的不可连接
前一段时间,我修改了db2inst1目录下的所有文件的权限,目的是方便其他用户访问和查看里面的文件信息.可是修改了之后,我用IBM data studio就始终连接不上数据库了. 查看了错误代码,看提 ...
-
开地址哈希表(Hash Table)的原理描述与冲突解决
在开地址哈希表中,元素存放在表本身中.这对于某些依赖固定大小表的应用来说非常有用.因为不像链式哈希表在每个槽位上有一个"桶"来存储冲突的元素,所以开地址哈希表需要通过另一种方法来解 ...
-
将Python程序打包为exe方法
将Python程序打包为exe文件,需要使用到的工具是pyinstaller pyinstaller是一个多平台的Python程序打包为exe的免费工具 安装pyinstaller: 1,在Windo ...
-
jokes
先看效果如下 目录如下 //index.html <!DOCTYPE html> <html lang="zh-CN"> <head> < ...