淘淘商城23_solr在Linux上的操作02_安装IK中文分词器

一、思想

1、在solr中默认是没有中文分析器,需要手工配置,配置一个FieldType,在FieldType中指定中文分析器。

2、Solr中的字段必须是先定义后使用。

二、步骤

1. 配置IKAnalyzer的jar包

将上面图片中的IK Analyzer 2012FF_hf1文件夹通过xftp导入到usr/local中

2. 将IKAnalyzer2012FF_u1.jar拷贝到 Tomcat的webapps/solr/WEB-INF/lib 下

[root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/

3. ​​​​​​​IKAnalyzer的配置文件

思想: 

需要把IKAnalyzer需要的扩展词典及停用词典、配置文件复制到solr工程的classpath 下。

3.1 在Tomcat的webapps/solr/WEB-INF/下创建classes目录

[root@localhost WEB-INF]# mkdir classes

3.2 复制配置文件到这个目录

/usr/local/solr/tomcat/webapps/solr/WEB-INF/classes

将IKAnalyzer.cfg.xml、ext_stopword.dic 、mydict.dic  copy到 Tomcat的webapps/solr/WEB-INF/classes

执行命令:

[root@localhost IK Analyzer 2012FF_hf1]# cp ext_stopword.dic IKAnalyzer.cfg.xml mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes

 

注意:ext_stopword.dic 和mydict.dic必须保存成无BOM的utf-8类型。不要用widows记事本编辑

3.3 ​​​​​​​修改schema.xml文件

[root@localhost solr]# vim solrhome/collection1/conf/schema.xml

Vi 和vim文档使用技巧    G或者 快捷键Shift + g 跳转到文档最后   gg跳转文档第一行

修改Solr的schema.xml文件,添加下面配置代码到最后一行:

<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

Esc      :wq!保存退出

4. ​​​​​​​设置业务系统Field

这个得和数据库里的业务字段进行对应配置,参考京东配置

业务字段判断标准:

  1. 在搜索时候是否需要在此字段上进行搜索。例如:商品名称、商品卖点、商品描述等...
  2. 后续的业务是否需要用到此字段。例如:商品id。

需要用到的字段:

  1. 商品id
  2. 商品title
  3. 卖点
  4. 价格
  5. 商品图片
  6. 商品分类名称
  7. 商品描述

Solr中的业务字段:

1.id——》商品id

其他的对应字段创建solr的字段。

设置业务系统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"/>

把以上内容复制到 schema.xml文件中

配置文件说明:

name:数据库对应字段

stored:定义是否存储,false不存储,true是存储,定义是否存储的标准是,看我们这些信息是否展现给客户,如果展现的话就定义为true存储,如果不展现只是在搜索的时候用的话,那我们就定义成为false不存储

multiValued:复制域,创建复制域是solr自带的一个功能,把上面所有的域都放到一个item_keywords名字的域里,都从这一个域里取内容会快一些,就像数据库里从一张表里取数据肯定比从多张表里取数据速度要快。

5. 重新启动tomcat

5.1 ​​​​​​​验证中文分析器是否配置成功

5.2 使用方法

出现以下内容说明配置成功 

三、索引的增删改查

在之前的文件中有详细说明,这里就不再赘述了

地址:https://mp.csdn.net/postedit/85224434

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/fjz_lihuapiaoxiang/article/details/85230069