【Solr】之中文分词及IK库的安装使用-4

一、什么是分词

首先,Solr有自己基本的类型,string、int、date、long等等。
  对于string类型,比如在你的core/conf/manage-schema文件中,配置一个字段类型为string类型,如果查询符合“我是中国人”的数据,它就认为“我是中国人”是一个词语。
  但是如果你将该字段设置成了分词,即配置成了text_ik类型,就可能匹配“我”、“中国人”、“中国”、“中”、“人”带有这些字的该字段数据都可能被查询到。这就是分词带来的结果。具体要按照各自的业务来配置是否分词,分词对于大文本字段设置是合理的,但是对于小字段,设置分词是没必要的,甚至有相反的结果。比如你的某一个叫姓名的字段设置了分词,还不如设置string,查询时模糊匹配效果最好,(模糊匹配就是查询条件两边加上*),当然也要看自己业务需求是什么。

二、配置目地

就是让solr能对中文进行分词
在这里插入图片描述

三、分词器的选择

之前我们使用jieba分词,效果不是很好。
现在有个非常牛的分词器,IK 分词器,效果非常好,如果你一直使用solr 那么以后将一直使用IK分词器

中文分词在solr里面是没有默认开启的,需要自己配置一个中文分词器。
目前可用的分词器有smartcn,IK,Jeasy,庖丁。其实主要是两种,一种是基于中科院ICTCLAS的隐式马尔科夫HMM算法的中文分词器,如smartcn,ictclas4j,优点是分词准确度高,缺点是不能使用用户自定义词库;另一种是基于最大匹配的分词器,如IK ,Jeasy,庖丁,优点是可以自定义词库,增加新词,缺点是分出来的垃圾词较多。各有优缺点。
主流还是ik,可以扩展自己的词库,非常方便,加入一些热搜词,主题词,对于搜索而言,非常方便

四、分词器的的配置

4.1 下载

下载ik (5及以上版本通用) http://files.cnblogs.com/files/zhangweizhong/ikanalyzer-solr5.zip

4.2 解压文件及说明

ext.dic自定义词 如沙雕 在汉语里面不是一个词 ,它只是一个网络用语,可以配置到这=里面让它成为一个词
stopword.dic 停止字典 如 啊 吧 唉 不作分词
IKAnalyzer.cfg.xml配置ik的配置文件 不用改
Jar:如果要使用ik分词要导入的jar包

4.3 修改managed-schema

UseSmart 和分词的粒度相关:
False: 分词的粒度大,一句话里面分的词语少
True:分词的粒度细,一句话里面分的词语多

那我们在导入时需要的关键字多吗?让索引的数据量少一点。我们的粒度大:False
我们在搜索时需要的关键字多吗?我们想尽可能的覆盖所有的范围,我们的粒度要细:True

<!--添加一个中文分词器IK-->
  <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100"> 
      <analyzer type="index">
       <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
      </analyzer>
      <analyzer type="query">
       <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>
      </analyzer>
    </fieldType>
4.4 把修改managed-sahma覆盖到solr

在这里插入图片描述

4.5 重启solr

在这里插入图片描述

4.6 查看分析出现错

产生原因是因为我们只添加发分词
但是ik想要运行必须要加入相关的配置

在这里插入图片描述
上面的配置没有加入

4.7 把IK的配置入到solr

4.7.1,放入jar包
在这里插入图片描述
4.7.2,放配置
在/usr/local/solr-7.7.2/server/solr-webapp/webapp/WEB-INF创建一个classes
在这里插入图片描述

4.8,重启solr分析

在这里插入图片描述

4.9存在问题

在这里插入图片描述
要索引时要遵循一个原因
1,索引时分词的要尽量少
2,搜索时分词尽量多
在这里插入图片描述
改完重新覆盖,重启测试
在这里插入图片描述
到此为止,全部配置成功!!!

五、使用IK分词器

5.1 添加一个属性

在这里插入图片描述
添加数据测试下
在这里插入图片描述
查看分词
在这里插入图片描述
查询测试
在这里插入图片描述
为什么pro3有 pro没有 因为ik分词时认为pro3是一个词 而pro不是词

5.2 ext.dic的说明

在ext.dic里添加一个自定义的词 沙雕
覆盖 查询
重启测试
发现现在solr认为 沙雕就是一个词

Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎 课程特点毕业后接触的第一个中间件就是Solr,在工作中用处广泛,为了便于大家快速掌握该技能,开始录制相关课程,该专栏特点如下:1.采用Solr最新版本视频录制,全网最新课程(Solr8.1于2019年5月16日发布)2.技能点全网最全,会结合工作经验,项目中用到的技能点都会有所涉及,更新章节比较全面3.适用范围广,从零基础到高级架构以及分布式集群都涵盖,适用初级、高级、项目实战等多个层次开发者4.多种维度辅助学习,采用独立solr粉丝群辅助教学,学员问题会及时得到解决,程序员突破圈 打卡制度,督促学员学习关注后再购买、 关注后再购买、 关注后再购买课程能得到什么1.快速学习到最新版本的全文检索技术,从视频、文章、圈子、粉丝交流等快速促进学习2.通过该技术,获得面试进阶指导3.结交人脉(庞大的粉丝群)..End初期学员100人,价格不会太高,也是为了帮助更多的开发者但是个人精力有限,所以限制条件如下1.求知欲强,有想向技术更深一层了解的2.乐于交流,喜欢探讨技术者3.学习惰性者慎入,购买后会督促大家学习,购买不是目的,学习到该技能才是该专栏的主要目的正式进入学习状态了吗,专栏群见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding路人王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值