1.使用分词器的原因:
传统分词器是将搜索内容分成一个个字,这样会影响查询效果,
举例:查询“蛋糕”
但是查询结果会有“鸡蛋饼”这种情况
solr原理就是倒排索引
数据库是正排索引
倒排索引与正排索引讲解
2。IK中文分词器
下载地址
2.2将架包放在solr-8.2.0\server\solr-webapp\webapp\WEB-INF\lib
这个文件夹下
2.3在solr-8.2.0\server\solr-webapp\webapp\WEB-INF这个文件夹下创建classes 文件夹,
2.4右击下载的架包
把这五个文件复制到classes 文件夹中,
2.5打开solr-8.2.0\server\solr\product\conf中的managed-schema文件 寻找fieldType标签添加如下
<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
如图:
2.6重启solr
2.7刷新网页 即有了“text_ik”分词器
如图效果出来了,不会将中国分为两个单独的汉字,
2.7将text_general改变成text_ik
2.8删除原先导入的数据
<delete>
<query>id:68</query>
</delete>
<commit/>
2.9重启solr 服务器 重新导入数据
查询,效果如图