Skip to content

leogitpro/ik-analyzer-solr

 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%