solr搭建电商搜索引擎05 - 中文分词器的配置

在英文中,单词本身就是一个“词”,一句话是由若干个英文单词和分隔符(空格)组成。而在汉语中,一句话是由若干汉字组成,但是语意的理解是以词为单位,而词和词之间没有分隔符,这样就给中文的语意理解造成了一定障碍。比如“南京市长江大桥”既可以理解为“南京市/长江/大桥”,也可以理解为“南京/市长/江大桥”。如果没有中文分词器,solr就只能按照整句话或者单个字进行索引,这样不但效率低,而且也会影响搜索结果的相关性。因此,我们需要为solr配置中文分词器。

在前面配置schema文件时,我们为product_name和product_brand两个域设置了text_cn_index的文本域类型,采用的是solr.KeywordTokenizerFactory这个分词器,它会将整个文本作为一个Token。solr管理页面提供了分词测试功能,在后续配置分词器的过程中都可以使用这个接口进行测试:在solr管理页面选择core后点击“Analysis”,键入测试文本后选择FieldType为配置了分词器的product_name或product_brand,点击“Analyse Values”后可以看到结果。

(分词器修改成功后,通过Analyse Values可以看到修改后的分词效果,但是要重新上传搜索引擎数据才能更新索引!)

solr搭建电商搜索引擎05 - 中文分词器的配置_第1张图片

1 SmartCN分词器

SmartCN是solr内置的中文分词器,是基于北理工张华平博士团队开发的NLPIR平台的简化版。SmartCN不在solr的源码包,因此需要从扩展包配置后才能调用。

1、把SmartCN对应的jar包(lucene-analyzers-smartcn-5.5.5)复制到webapp中:
来源路径:

D:\solr_local\contrib\analysis-extras\lucene-libs

目标路径:

D:\solr_local\server\solr-webapp\webapp\WEB-INF\lib

2、在schema中修改fieldType的中文分词器,即把原来的KeywordTokenizerFactory修改为HMMChineseTokenizerFactory:
原fieldType:






新fieldType:






重启solr后,可以看到配置分词器后的效果:
solr搭建电商搜索引擎05 - 中文分词器的配置_第2张图片

2 NLPIR分词器

NLPIR分词器同样提供了完整的solr版本,详细介绍和安装可以参考git主页: https://github.com/NLPIR-team/nlpir-analysis-cn-ictclas

1、下载分词器对应的jar包和dll依赖的jar包,并放置在core对应的lib文件夹内:
下载链接1:
https://github.com/NLPIR-team/nlpir-analysis-cn-ictclas/blob/master/target/lucene-analyzers-nlpir-ictclas-6.6.0.jar
下载链接2:
https://github.com/NLPIR-team/NLPIR/blob/master/NLPIR SDK/NLPIR-ICTCLAS/projects/ICTCLAS_Java/lib/jna-4.0.0.jar
目标路径:

D:\solr_local\server\solr\ec\lib

2、在根目录的server文件夹内,新建nlpir.properties文件并配置参数:
目标路径:

D:\solr_local\server

文件内容:

data=D:\\solr_local\\server\\solr\\ec\\nlpir
encoding=1
sLicenseCode="License code"
userDict="" # user dictionary, a text file
bOverwrite=false

3、下载分词器依赖的各种数据文件(整个data文件夹),并保存在上一步配置的路径:
下载地址:
https://github.com/NLPIR-team/nlpir-analysis-cn-ictclas
目标路径:

D:\solr_local\server\solr\ec\nlpir

data路径和目录内容如下:
solr搭建电商搜索引擎05 - 中文分词器的配置_第3张图片
4、在schema中修改fieldType的中文分词器,即把原来的KeywordTokenizerFactory修改为HMMChineseTokenizerFactory:
原fieldType:






新fieldType:






重启solr后,分词效果和SmartCN相同。
solr搭建电商搜索引擎05 - 中文分词器的配置_第4张图片

你可能感兴趣的:(solr)