摘要: 中文分词库 IKAnalyzer自2006年发布以后,被大量运用,但是目前已经没有更新了,因此不能很好的支持Solr6,为此,我修改了源码,使之兼容。
下载源码
- 开源地址: https://github.com/EugenePig/ik-analyzer-solr5
说明:原本IK Analyzer应该为https://github.com/wks/ik-analyzer,但是由于太久没更新,这个源码升级跨度太大,于是我用的别人的代码ik-analyzer-solr5,这份代码源自于IK Analyzer_2012 - 环境与工具:JDK8,Eclipse4.5(带有git插件,Maven插件)
- 引入项目:Import – > Git – > Projects from Git – > Clone URI
- 修改pom.xml文件:将IK Analyzer直接升级为6.0.0,lucene和Solr的版本用6.0.0,此外lucene-analyzers和lucene-smartcn已经合并为lucene-analyzers-smartcn,将版本也定为6.0.0,修改完之后,转换成Maven项目,参见Solr6升级mmseg4j.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.wltea.ik-analyzer</groupId>
<artifactId>ik-analyzer-solr6</artifactId>
<version>6.0.0</version>
<packaging>jar</packaging>
<name>ik-analyzer-solr6</name>
<url>http://code.google.com/p/ik-analyzer/</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lucene.version>6.0.0</lucene.version>
<javac.src.version>1.8</javac.src.version>
<javac.target.version>1.8</javac.target.version>
<maven.compiler.plugin.version>3.3</maven.compiler.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>${lucene.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>${javac.src.version}</target>
<source>${javac.target.version}</source>
</configuration>
<version>${maven.compiler.plugin.version}</version>
</plugin>
</plugins>
</build>
</project>
升级代码
- Build项目:发现项目有中文注释视乱码,将项目编码改为UTF-8,
将Java版本升级为Java8,注意:Eclipse4.4以上才支持java8,。 - IKQueryExpressionParser.java:编译器直接报错,需要修改这个文件。
- 通过官方API,看到
BooleanQuery
的使用方法已经改变,将其改正。
改正后错误消失。
- 重新打包,得到的jar文件。
- 我将代码放在了GitHub上:https://github.com/cj96248/ik-analyzer-solr6