学习淘淘商城第三十七课(中文分析器IK-Analyzer的使用)
来源:互联网 发布:c语言界面设计 编辑:程序博客网 时间:2024/05/27 20:12
在Solr中默认是没有中文分析器的,需要手工配置,配置一个FieldType,在FieldType中指定中文分析器。另外,Solr中的字段必须先定义,后使用。
下面分步骤进行操作
第一步:将IK-Analyzer的压缩包上传到solr服务器上。如下所示。
[root@solr-server software]# ll总用量 335576drwxr-xr-x. 9 root root 4096 4月 30 05:51 apache-tomcat-7.0.47-rw-r--r--. 1 root root 8234674 3月 15 01:22 apache-tomcat-7.0.47.tar.gz-rw-r--r--. 1 root root 2159463 1月 15 19:46 IKAnalyzer2012FF_hf1.zip-rw-r--r--. 1 root root 183212596 4月 2 10:51 jdk-8u112-linux-x64.gz-rw-r--r--. 1 root root 150010621 3月 15 01:20 solr-4.10.3.tgz.tgz[root@solr-server software]#第二步:安装zip和unzip命令(因为最小化安装的CentOS6没有unzip命令)
[root@solr-server software]# yum install zip unzip
第三步:解压,如下所示
[root@solr-server software]# unzip IKAnalyzer2012FF_hf1.zip
[root@solr-server software]# ll总用量 335580drwxr-xr-x. 9 root root 4096 4月 30 05:51 apache-tomcat-7.0.47-rw-r--r--. 1 root root 8234674 3月 15 01:22 apache-tomcat-7.0.47.tar.gzdrwxr-xr-x. 3 root root 4096 10月 2 2015 IKAnalyzer2012FF_hf1-rw-r--r--. 1 root root 2159463 1月 15 19:46 IKAnalyzer2012FF_hf1.zip-rw-r--r--. 1 root root 183212596 4月 2 10:51 jdk-8u112-linux-x64.gz-rw-r--r--. 1 root root 150010621 3月 15 01:20 solr-4.10.3.tgz.tgz[root@solr-server software]#
解压完后,我们到IKAnalyzer2012FF_hf1目录下查看都有哪些文件,如下所示。其中doc当然是文档了;ext_stopword.dic是停用词词典(在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。但是,并没有一个明确的停用词表能够适用于所有的工具。甚至有一些工具是明确地避免使用停用词来支持短语搜索的。)IKAnalyzer.cfg.xml是配置文件,mydict.dic是扩展词典。IKAnalyzer2012FF_u1.jar是核心包。
[root@solr-server software]# cd IKAnalyzer2012FF_hf1[root@solr-server IKAnalyzer2012FF_hf1]# ll总用量 2004drwxr-xr-x. 5 root root 4096 10月 2 2015 doc-rw-r--r--. 1 root root 168 9月 11 2015 ext_stopword.dic-rw-r--r--. 1 root root 1165908 9月 11 2015 IKAnalyzer2012FF_u1.jar-rw-r--r--. 1 root root 419 9月 11 2015 IKAnalyzer.cfg.xml-rw-r--r--. 1 root root 841268 9月 11 2015 IKAnalyzer中文分词器V2012_FF使用手册.pdf-rw-r--r--. 1 root root 17778 9月 11 2015 LICENSE.txt-rw-r--r--. 1 root root 12 9月 11 2015 mydict.dic-rw-r--r--. 1 root root 278 9月 11 2015 NOTICE.txt[root@solr-server IKAnalyzer2012FF_hf1]#第四步:把分析器的jar包添加到solr工程中
[root@solr-server IKAnalyzer2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/[root@solr-server IKAnalyzer2012FF_hf1]#
第五步:把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的classpath。
我们需要先在/usr/local/solr/tomcat/webapps/solr/WEB-INF/目录下创建classes目录,如下所示。
[root@solr-server IKAnalyzer2012FF_hf1]# mkdir /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes[root@solr-server IKAnalyzer2012FF_hf1]#
下面就是copy操作,如下所示。
[root@solr-server IKAnalyzer2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes[root@solr-server IKAnalyzer2012FF_hf1]#
注意:扩展词典及停用词词典的字符集必须是utf-8。不能使用windows记事本编辑。
第六步:配置fieldType。
需要在solrhome/collection1/conf/schema.xml中配置,我们先到schema.xml所在的目录,如下所示。
[root@solr-server IKAnalyzer2012FF_hf1]# cd /usr/local/solr/solrhome/collection1/conf[root@solr-server conf]# ll总用量 292-rw-r--r--. 1 root root 1068 4月 30 05:58 admin-extra.html-rw-r--r--. 1 root root 928 4月 30 05:58 admin-extra.menu-bottom.html-rw-r--r--. 1 root root 926 4月 30 05:58 admin-extra.menu-top.htmldrwxr-xr-x. 3 root root 4096 4月 30 05:58 clustering-rw-r--r--. 1 root root 3974 4月 30 05:58 currency.xml-rw-r--r--. 1 root root 1348 4月 30 05:58 elevate.xmldrwxr-xr-x. 2 root root 4096 4月 30 05:58 lang-rw-r--r--. 1 root root 78514 4月 30 05:58 mapping-FoldToASCII.txt-rw-r--r--. 1 root root 2868 4月 30 05:58 mapping-ISOLatin1Accent.txt-rw-r--r--. 1 root root 873 4月 30 05:58 protwords.txt-rw-r--r--. 1 root root 33 4月 30 05:58 _rest_managed.json-rw-r--r--. 1 root root 450 4月 30 05:58 _schema_analysis_stopwords_english.json-rw-r--r--. 1 root root 172 4月 30 05:58 _schema_analysis_synonyms_english.json-rw-r--r--. 1 root root 60689 4月 30 05:58 schema.xml-rw-r--r--. 1 root root 921 4月 30 05:58 scripts.conf-rw-r--r--. 1 root root 74827 4月 30 05:58 solrconfig.xml-rw-r--r--. 1 root root 13 4月 30 05:58 spellings.txt-rw-r--r--. 1 root root 781 4月 30 05:58 stopwords.txt-rw-r--r--. 1 root root 1119 4月 30 05:58 synonyms.txt-rw-r--r--. 1 root root 1416 4月 30 05:58 update-script.jsdrwxr-xr-x. 2 root root 4096 4月 30 05:58 velocitydrwxr-xr-x. 2 root root 4096 4月 30 05:58 xslt[root@solr-server conf]#编辑schema.xml,使用Shift+G就可以直接到文件的末尾,然后添加如下内容
<fieldType name="text_ik" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>
第七步:业务字段配置
在淘淘商城的商品搜索功能当中,我们可能用到的字段如下,由于数据库中id字段和solr中的id同名,我们便使用solr的id代替商品id。也就是说,我们需要配置6个业务字段。
1、商品id2、商品title3、卖点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" />
第八步:配置复制域
在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
关闭tomcat的命令如下。
[root@solr-server tomcat]# bin/shutdown.sh启动
[root@solr-server tomcat]# bin/startup.sh
重启之后,我们看看字段是否有我们刚才定义的几个,发现是有的,如下图所示。
下面我们来测试中文分词器是否可用,我们选择item_desc字段,我们在Field Value当中添加一段中文,然后点击"Analyse Values"按钮,就可以开始分析了,分析结果如下。可以看到,我们的中文分析器配置成功了。
0 0
- 学习淘淘商城第三十七课(中文分析器IK-Analyzer的使用)
- 淘淘商城系列——中文分析器IK-Analyzer的使用
- 学习淘淘商城第三十五课(Solr的安装)
- 学习淘淘商城第二十七课(内容管理)
- 学习淘淘商城第五十七课(接收Queue消息)
- 学习淘淘商城第六十七课(freemarker入门)
- Lucene 学习(二):使用IK Analyzer中文分词
- 学习淘淘商城第三十课(Jedis的使用)
- 学习淘淘商城第三十一课(Redis集群搭建)
- 学习淘淘商城第三十二课(Redis集群测试)
- 学习淘淘商城第三十六课(Solr集群搭建)
- 学习淘淘商城第三十八课(搜索服务搭建)
- 学习淘淘商城第三十九课(搜索系统搭建)
- 学习淘淘商城第三课(使用tomcat插件启动web工程)
- 学习淘淘商城第四十七课(搜索功能Service实现)
- 学习淘淘商城第七十七课(LVS+Nginx负载均衡---上篇)
- 学习淘淘商城第九十七课(商品详情页面对加入购物车进行改造)
- 学习淘淘商城第三十三课(使用Spring来管理Redis单机版和集群版)
- 关于Android源码的获取
- 4.29面试总结
- LeetCode 130. Surrounded Regions (并查集)
- POJ 3159 Candies(差分规划+SPFA)
- openvpn通过ldap或ad统一认证解决方案思路分享
- 学习淘淘商城第三十七课(中文分析器IK-Analyzer的使用)
- 第七章 类
- mysql--查看版本
- Effective Java系列读后感(三)-类和接口
- C++ 文件操作
- eclipse 常用快捷键整理
- WiFi、ZigBee、BLE用哪个?小米内部是这样选的
- 重载运算符
- 堆栈是什么意思?