Awesome Open Source
Awesome Open Source

ik-analyzer-solr

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

GitHub version Open Source Love Crates.io Build Status

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万 2020年

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

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

关闭默认主词典请在IKAnalyzer.cfg.xml配置文件中设置use_main_dictfalse

使用说明

  • jar包下载地址:GitHub version

  • 历史版本:GitHub version

    <!-- Maven仓库地址 -->
    <dependency>
        <groupId>com.github.magese</groupId>
        <artifactId>ik-analyzer</artifactId>
        <version>8.5.0</version>
    </dependency>
    

Solr-Cloud

单机版Solr

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

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

    ① IKAnalyzer.cfg.xml
    ② ext.dic
    ③ stopword.dic
    ④ ik.conf
    ⑤ dynamicdic.txt
    
  3. 配置Solr的managed-schema,添加ik分词器,示例如下;

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

    analyzer

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

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

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

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

更新说明

  • 2021-12-23: 升级lucene版本为8.5.0
  • 2021-03-22: 升级lucene版本为8.4.0
  • 2020-12-30:
    • 升级lucene版本为8.3.1
    • 更新词库
  • 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

感谢 Thanks

IDEA

forthebadge

BUG & 疑问 & 其它

如果您在使用过程中遇到了BUG,或者有不清楚的地方,请挂ISSUE或者联系作者:[email protected]

如果您觉得该项目对您有帮助,请别忘记给这个项目一个star



Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Java (412,144
Cloud Computing (29,198
Dictionaries (11,782
Solr (2,994
Lucene (1,290
Ik (550
Jieba (521
Solrcloud (38
Ik Analyzer (8
Ik Analysis (5