ik-analyzer-solr

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

Github stars Tracking Chart

ik-analyzer-solr

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

GitHub version
Open Source Love
Crates.io
Build Status
HitCount

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

    <!-- Maven仓库地址 -->
    <dependency>
        <groupId>com.github.magese</groupId>
        <artifactId>ik-analyzer</artifactId>
        <version>8.3.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类型,现可以用时间戳了。
  6. 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

感谢 Thanks

IDEA

forthebadge

BUG & 疑问 & 其它

如果您在使用过程中遇到了BUG,或者有不清楚的地方,请挂ISSUE或者联系作者:magese@live.cn

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

Main metrics

Overview
Name With Ownermagese/ik-analyzer-solr
Primary LanguageJava
Program languageJava (Language Count: 1)
Platform
License:Other
所有者活动
Created At2018-05-10 05:53:09
Pushed At2024-02-19 01:29:26
Last Commit At2022-01-04 10:36:49
Release Count11
Last Release Namev8.5.0 (Posted on )
First Release Namev7.5.0 (Posted on )
用户参与
Stargazers Count1.1k
Watchers Count28
Fork Count172
Commits Count136
Has Issues Enabled
Issues Count21
Issue Open Count13
Pull Requests Count1
Pull Requests Open Count1
Pull Requests Close Count3
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private