Solr中配置分词器
为什么要用分词器:
在solr中搜索酒店:

使用条件查询:输入全名可以查到。

使用条件查询:输入部分名字查不到

对于关键词“北京首都大酒店”,用户输入
“北京首都大酒店”,
“北京大酒店”,
“首都大酒店”等,
最好都能搜索到想要的数据。这种搜索方式叫“全文检索”。
全文检索:
只要其中有,就算可以。
如:搜“北京”:
“中国,北京市”
“北京大兴国际机场”
“我爱北京天安门”
以上都可以算作搜索出的结果。
解决办法:
对关键词进行拆分:
如:“我爱北京天安门”
拆分:“我” “爱” “北京” “爱北京” “天” “天安” “天安门”
要对关键词进行拆分,需要用“分词器”。
百度:

分词器:
Word分词器
Ansj分词器
IKAnalyzer分词器 (我们用)
IKAnalyzer分词器
1.Jar包
IK分词器可在码云上下载。

下载下来的jar包:

把jar包放到solr项目WEB-INF中lib中:

2.Solr项目中配置IK
把IK自己的相关配置放到solr项目中WEB-INF中的classes文件夹中
IKAnalyzer.cfg.xml
mydict.dic
ext_stopword.dic

3.solr_home中配置分词器类型:
新建数据类型:
到solr_home中hotel中conf中schema.xml中添加:

注意:
index:对数据库导入的数据进行分词。
query:对用户输入的查询数据进行分词。
使用数据类型

4.重启Tomcat:
5.重新导入数据,重新建立索引:

6.solr测试分词效果

Solr点击Analysis选项看分词效果:
选择进行了分词的字段,如:keyword.
输入keyword数据
点击Analyse Values查看分词效果。
分词优化:
1.专用的词,当整体看,不分词。
如:白富美,高富帅。

到solr项目WEB-INF中classes中找到ext_dict.dic文件

打开,添加“白富美”,“白富美”将不再分词。

重启Tomcat测试:

“白富美”将不再分词。
mydic.dic中
在分词词典中添加“白富美”,白富美就会被分词器认为是一个词。
2.偏僻的词,无意义的词,语气词等,直接忽略:
到solr项目WEB-INF中classes中找到ext_stopwords.dic文件


solr测试“了”:

“了”会被solr中分词器直接忽视。