ik-analyzer-solr/README.md

3.4 KiB
Raw Permalink Blame History

ik-analyzer-solr7

ik-analyzer for solr7.x

IKAnalyzer的原作者为林良益linliangyi2007@gmail.com项目网站为http://code.google.com/p/ik-analyzer/

适配最新版solr7并添加动态加载字典表功能

在不需要重启solr服务的情况下加载新增的字典。

更新说明

  • 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

使用说明:


<!-- Maven仓库地址 -->
<dependency>
    <groupId>com.github.magese</groupId>
    <artifactId>ik-analyzer</artifactId>
    <version>7.5.0</version>
</dependency>
  • 1. 将jar包放入solr服务的jetty或tomcat的webapp/WEB-INF/lib/目录下;

  • 2. 将resources目录下的5个配置文件放入solr服务的jetty或tomcat的webapp/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服务测试分词

  • 5. ik.conf文件说明

    files=dynamicdic.txt
    lastupdate=0
    

    files为动态字典列表可以设置多个字典表用逗号进行分隔默认动态字典表为dynamicdic.txt

    lastupdate默认值为0每次对动态字典表修改后请+1不然不会将字典表中新的词语添加到内存中。lastupdate采用的是int类型不支持时间戳如果使用时间戳的朋友可以把源码中的int改成long即可

    2018-08-23 已将源码中lastUpdate改为long类型现可以用时间戳了。

  • 5-dynamicdic.txt 为动态字典,在此文件配置的词语不需重启服务即可加载进内存中;


有问题可以联系作者邮箱magese@live.cn

欢迎大家一起交流~