Lucene笔记(一):Lucene 7.2.1 整合 IKAnalyzer

IKAnalyzer断更    

        由于林良益先生在2012之后,未对IKAnalyzer进行更新,后续lucene分词接口发生变化,导致 IKAnalyzer 中文分词器不可使用,林良益先生 IKAnalyzer 源码见码云:IK Analyzer 2012FF

        使用IKAnalyzer中文分词器(常用版本IKAnalyzer2012_FF,这里是2012_u6,只能兼容到 Lucene版本4.4.0。使用更高版本Lucene 整合 IKAnalyzer,Analyzer.tokenStream方法,会报 org.apache.lucene.analysis.Analyzer.createComponents ,错误如下图所示:


 Lucene 7.2.1 整合 IKAnalyzer:

 1.添加Maven依赖

<!-- IKAnalyzer分词依赖 -->
<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-core</artifactId>
    <version>7.2.1</version>
</dependency>

 2.下载 IK-Analyzer-7.2.1.jar包

     点击下载  (提取码:yy9x )

 3.将下载的 jar 包放置到项目 lib 包下(如果公司有私服的话,可以直接放到私服即可。3-5步即可省略)

 4.将 jar 包导入项目

  (IDEA流程:File---->Project Structure---->Modules---->Dependencies----> + 号 ---->1.JARS or directories)

5.选择lib 包下的 IK-Analyzer-7.2.1.jar,然后点击OK即可

6.添加IKAnalyzer.cfg.xml 配置文件到 resources 目录下。cfg.xml 文件配置自己的扩展词典和停用词,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典(可多个,通过分号分隔) -->
    <entry key="ext_dict">hotword.dic</entry>
    <!--用户可以在这里配置自己的扩展停止词字典(可多个,通过分号分隔) -->
    <entry key="ext_stopwords">stopword.dic</entry>
</properties>

   扩展词典下载地址:点击下载 (提取码:zhvl )

   禁用词下载地址: 点击下载 (提取码:dmqi )

7.附IKAnalyzer分词Demo

package com.ddky.persona.neo4j;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.wltea.analyzer.lucene.IKAnalyzer;

import java.io.IOException;
import java.io.StringReader;

public class splitWordDemo {
    public static void main(String[] args) throws IOException {
        String text="我要买酒啊查询订单,我该买什么品牌的酒呢?你能给我一点参考吗,或者让我看看订单也行,或者我要查询订单";
        //创建分词对象
        Analyzer anal=new IKAnalyzer(true);
        StringReader reader=new StringReader(text);
        //分词
        TokenStream ts=anal.tokenStream("", reader);
        ts.reset();
        CharTermAttribute term=ts.getAttribute(CharTermAttribute.class);
        //遍历分词数据
        while(ts.incrementToken()){
            System.out.print(term.toString()+"|");
        }
        reader.close();
        System.out.println();
    }
}

Demo结果如下图所示:


Lucene 7.2.1 整合 IKAnalyzer,介绍到此为止

如果本文对你有所帮助,那就给我点个赞呗 ^_^ 

End

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扛麻袋的少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值