转载

solr添加中文IK分词器,以及配置自定义词库

Solr 是一个基于 Lucene 的 Java 搜索引擎服务器。 Solr  提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。 Solr 已经在众多大型的网站中使用,较为成熟和稳定。 Solr  包装并扩展了 Lucene ,所以 Solr 的基本上沿用了 Lucene 的相关术语。更重要的是, Solr  创建的索引与 Lucene 搜索引擎库完全兼容。通过对 Solr  进行适当的配置,某些情况下可能需要进行编码, Solr  可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如 Nutch 、 Luke )也可以使用 Solr  创建的索引。

solr 默认是不支持中文分词的,这样就需要我们手工配置中文分词器,在这里我们选用 IK Analyzer 中文分词器。

IK Analyzer 下载地址: https://code.google.com/p/ik-analyzer/downloads/list

如图:


solr添加中文IK分词器,以及配置自定义词库

默认大家已经下载并解压了 solr ,在这里我们使用 solr 4.10.4 版本

试验环境 centos 6.5 , JDK1.7

整合步骤

1 :解压下载的 IK Analyzer_2012_FF_hf1.zip 压缩包,把 IKAnalyzer2012FF_u1.jar 拷贝到 solr-4.10.4/example/solr-webapp/webapp/WEB-INF/lib 目录下

2 :在 solr-4.10.4/example/solr-webapp/webapp/WEB-INF 目录下创建目录 classes ,然后把 IKAnalyzer.cfg.xml 和 stopword.dic 拷贝到新创建的 classes 目录下即可。

3 :修改 solr core 的 schema 文件,默认是 solr-4.10.4/example/solr/collection1/conf/schema.xml, 添加如下配置

<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>

4 :启动 solr , bin/solr start

5 :进入 solr web 界面 http://localhost:8983/solr, 看到下图操作结果即为配置成功


solr添加中文IK分词器,以及配置自定义词库

到现在为止, solr 就和 IK Analyzer 中文分词器整合成功了。

但是,如果我想自定义一些词库,让 IK 分词器可以识别,那么就需要自定义扩展词库了。

操作步骤:

1 :修改 solr-4.10.4/example/solr-webapp/webapp/WEB-INF/classes 目录下的 IKAnalyzer.cfg.xml 配置文件,添加如下配置

<entry key="ext_dict">ext.dic;</entry>

2 :新建 ext.dic 文件,在里面添加如下内容 ( 注意: ext.dic 的编码必须是 Encode in UTF-8 without BOM, 否则自定义的词库不会被识别 )

超人学院

3 :重启 solr 

4 :在 solr web 界面进行如下操作,看到图中操作结果即为配置成功。


solr添加中文IK分词器,以及配置自定义词库

更多精彩内容请访问: http://bbs.superwu.cn

关注超人学院微信:BJ-CRXY

正文到此结束
Loading...