您现在的位置是:首页 > 博客日记 > Search搜索 Search搜索

solr配置ik分词器

2019-12-13 13:37:51 【Search搜索】 人已围观

ik-analyzer-solr

ik-analyzer for solr 7.x-8.x

https://github.com/magese/ik-analyzer-solr

GitHub forks
GitHub stars

简介

适配最新版本solr 7&8;

扩展IK原有词库:

分词工具 词库中词的数量 最后更新时间
ik 27.5万 2012年
mmseg 15.7万 2017年
word 64.2万 2014年
jieba 58.4万 2012年
jcesg 16.6万 2018年
sougou词库 115.2万 2019年

将以上词库进行整理后约187.1万条词汇;

添加动态加载词典表功能,在不需要重启solr服务的情况下加载新增的词典。

使用说明

  • jar包下载地址:GitHub version
  • 历史版本:GitHub version

    1. <!-- Maven仓库地址 -->
    2. <dependency>
    3. <groupId>com.github.magese</groupId>
    4. <artifactId>ik-analyzer</artifactId>
    5. <version>8.3.0</version>
    6. </dependency>

Solr-Cloud

单机版Solr

  1. 将jar包放入Solr服务的JettyTomcatwebapp/WEB-INF/lib/目录下;

  2. resources目录下的5个配置文件放入solr服务的JettyTomcatwebapp/WEB-INF/classes/目录下;

    1. IKAnalyzer.cfg.xml
    2. ext.dic
    3. stopword.dic
    4. ik.conf
    5. dynamicdic.txt
  3. 配置Solr的managed-schema,添加ik分词器,示例如下;

    1. <!-- ik分词器 -->
    2. <fieldType name="text_ik" class="solr.TextField">
    3. <analyzer type="index">
    4. <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
    5. <filter class="solr.LowerCaseFilterFactory"/>
    6. </analyzer>
    7. <analyzer type="query">
    8. <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
    9. <filter class="solr.LowerCaseFilterFactory"/>
    10. </analyzer>
    11. </fieldType>
  4. 启动Solr服务测试分词;

    analyzer

  5. IKAnalyzer.cfg.xml配置文件说明:

名称 类型 描述 默认
use_main_dict boolean 是否使用默认主词典 true
ext_dict String 扩展词典文件名称,多个用分号隔开 ext.dic;
ext_stopwords String 停用词典文件名称,多个用分号隔开 stopword.dic;
  1. ik.conf文件说明:

    1. files=dynamicdic.txt
    2. lastupdate=0
    1. files为动态词典列表,可以设置多个词典表,用逗号进行分隔,默认动态词典表为dynamicdic.txt
    2. lastupdate默认值为0,每次对动态词典表修改后请+1,不然不会将词典表中新的词语添加到内存中。<s>lastupdate采用的是int类型,不支持时间戳,如果使用时间戳的朋友可以把源码中的int改成long即可;</s> 2018-08-23 已将源码中lastUpdate改为long类型,现可以用时间戳了。
  2. dynamicdic.txt 为动态词典

    在此文件配置的词语不需重启服务即可加载进内存中。
    #开头的词语视为注释,将不会加载到内存中。

更新说明

  • 2019-11-12:
    • 升级lucene版本为8.3.0
    • IKAnalyzer.cfg.xml增加配置项use_main_dict,用于配置是否启用默认主词典
  • 2019-09-27: 升级lucene版本为8.2.0
  • 2019-07-11: 升级lucene版本为8.1.1
  • 2019-05-27:
    • 升级lucene版本为8.1.0
    • 优化原词典部分重复词语
    • 更新搜狗2019最新流行词汇词典,约20k词汇量
  • 2019-05-15: 升级lucene版本为8.0.0,并支持Solr8使用
  • 2019-03-01: 升级lucene版本为7.7.1
  • 2019-02-15: 升级lucene版本为7.7.0
  • 2018-12-26:
    • 升级lucene版本为7.6.0
    • 兼容solr-cloud,动态词典配置文件及动态词典可交由zookeeper进行管理
    • 动态词典增加注释功能,以#开头的行将视为注释
  • 2018-12-04: 整理更新词库列表magese.dic
  • 2018-10-10: 升级lucene版本为7.5.0
  • 2018-09-03: 优化注释与输出信息,取消部分中文输出避免不同字符集乱码,现会打印被调用inform方法的hashcode
  • 2018-08-23:
    • 完善了动态更新词库代码注释;
    • 将ik.conf配置文件中的lastUpdate属性改为long类型,现已支持时间戳形式
  • 2018-08-13: 更新maven仓库地址
  • 2018-08-01: 移除默认的扩展词与停用词
  • 2018-07-23: 升级lucene版本为7.4.0


关注TinyMeng博客,更多精彩分享,敬请期待!
 

很赞哦! ()