solr 6.2.0系列教程(二)IK中文分词器配置及添加扩展词、停止词、同义词

来源:互联网 发布:jdk1.8 linux 32 下载 编辑:程序博客网 时间:2024/05/18 01:33

前言

1、搭建好solr工程,搭建步骤参见:solr 6.2.0系列教程(一)环境搭建、索引仓库创建
2、solr的不同版本,对应不同版本的IK分词器。由于IK 2012年停止更新了。所以以前的版本不适合新版的solr。
有幸在网上扒到了IK源码自己稍微做了调整,用来兼容solr6.2.0版本。IK源码下载地址

步骤

1、解压下载的src.rar压缩包,这是我建的工程里的src目录下的所有东西,都是IK 的源码,没别的。解压直接复制src文件夹里的内容到自己工程src目录下即可。
2、打开\solrhome\core0\conf\managed-schema配置文件。随意位置添加配置:
 <!-- IK分词配置 -->
         <fieldType name="text_ik" class="solr.TextField">   
                   <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
                   <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
         </fieldType> 
3、在\solrhome\core0\conf\managed-schema配置文件配置文件中添加三个字段名称。
(这里的字段名称就像关系数据库中字段名一样,将来搜索数据按照字段名搜索,向每个字段添加数据在接下来的教程中介绍)
添加配置:
   <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
   <field name="title" type="text_ik" indexed="true" stored="true" />
   <field name="test" type="text_general" indexed="true" stored="true"/>
其中title 字段的type属性为 text_ik,即我们刚添加的IK分词器。
test字段的type属性为text_general,即solr自带的分子器。
4.启动工程,首先简单介绍一下solr管理界面的使用。 

启动工程-->选择已创建的core0-->选择图中位置1的Analysis栏。
在图中位置2的输入框中输入一句话-->图中位置4的下拉框选择\solrhome\core0\conf\managed-schema配置文件中配的title字段名--->点击位置5Analyse Valu
显示的分词结果便是这句话经过IK分词器分词后存入solr的结果。
同样,输入一句话选择test字段进行分析 便是这句话经过solr自带的分词器分词后存入solr的结果。

当我们在位置3输入一句话然后选择相应的字段名,再点Analyse Valu后,显示的分词结果是:外部接口调用solr查询功能传过来的搜索关键词的分词情况。
比如:外部调用solr查询接口,搜索title字段下与关键词”中文分词配置问题“相关的内容。
下面看一下各种情况的分词结果。

------------------------------------------分割线------------------------------------------

------------------------------------------分割线------------------------------------------

------------------------------------------分割线------------------------------------------


或许你会发现,用IK分词器分词后的结果中为什么”的“字消失了。
IK分词器还有一些叫做扩展词,停止词的配置。"的"字是IK分词器的默认停止词,停止词就是没有意义的词,这类词不参与搜索。
5、配置IK分词器的扩展词、停止词。
将下载的文件夹中的IKAnalyzer.cfg.xml、stopword.dic、ext.dic三个文件复制到项目工程src目录下。
6、设置扩展词:在ext.dic文件中新增一个词,比如:”中文分词“(注意保存的格式为UTF-8 无BOM格式)。扩展词就是告诉IK分词器,配置的扩展词看作一个单元,不做切分。

7、重启solr工程
这里“中文分词”四个字作为一个完整的词没被切分,存入搜索引擎了。为什么后边还会出现被切分了的“中文”和“分词”呢。
其实IK分词器有两种模式,一种为smart模式,一种为非smart模式。例如:张三说的确实在理
smart模式下的分词结果:张三|说的|确实|在理
非smart模式下的分词结果:张三|三|说的|的确|的|确实|实在|在理
可见非smart模式所做的就是将能够分出来的词全部输出;smart模式下的IK分词器会根据内在的方法输出一个认为最合理的分词结果。
8、配置停止词:在stopword.dic文件中新增一个词"问题"(注意保存的格式为UTF-8 无BOM格式)。重启tomcat

可见配置生效,停止词就是告诉IK不去理会的词。






1 0
原创粉丝点击