Solr配置中文的分词器
这篇文章,主要是讲解Solr如何配置中文分词器,因为Solr默认是不支持中文分词的,导致我们查询条件是中文的时候,分词处理的很糟糕,导致查询结果不理想。上一篇文章中我们介绍的Solr的控制台的选项和基本功能,其中有个名为
Analyze
的,这个是用来查看分词结果的。可以查看上一篇文章:
英文分词
先来进行英文的分词看看,Analyze可以测试Field的文本分析效果,可以选择Field Type和Field
进行文本分析测试。下面是英文的分词示例,“I Eat An Apple Today”
的分词效果如下:
左边的是Index
的分词处理结果,右边的是Query
查询的分词效果,可以看到因为的分词是比较正常的,将I Eat An Apple Today
分为了下列的词I,Eat,An,Apple,Today
这几个词。下面我们看看中文的分词。
中文的查询
下面是中文查询的分词示例,“今天我吃了个苹果”
的分词效果如下,m冥想可以看到像中文的词汇今天,苹果
这些词都被拆开了,根本没有达到分词的效果,显然这样去建立索引和查询都会导致结果的不准确,建立了没有用的索引以及查询到不相干的结果:
Solr需要配置中文分词器(重要)
分词的工具有很多:有IK,mmseg4j,smartcn,HanLP,Jeasy
,下面主要就其中一种smartcn
分词器进行配置,其他的配置也都大同小异。
smartcn分词器的配置,Solr7.5中的${solr.}contrib
目录下提供了该工具的jar,还需要配置core的solrconfig.xml和managed-schema
文件,分别导入jar和定义数据类型Field Type
,下面是Smartcn的配置
在solrconfig.xml中引入jar
在managed-schema中定义数据类型
配置中文分词后,再分析一次
配置好中文分词器后,在进行分词的分析,中文的词汇今天,苹果
已经作为一个分词的结果了,可见我们配置的分词器生效了。