启动
DOS进入solr-6.5.1\bin
目录下执行命令:
单机启动solr start
创建项目solr create_collection -c 项目名称
项目目录solr-6.5.1\server\solr
配置
配置文件solr-6.5.1\server\solr\know\conf下的solrconfig.xml
和managed-schema
配置中文分词
修改managed-schema
,在field和fieldType标签后添加中文分词配置
后面找到相应位置,设置创建索引时不启用智能模式,搜索时启用智能模式。
编译IKAnalyzer
因为IKAnalyzer于12年停止更新,其中有部分方法在solr6.X下无正常工作,所以需要针对相应的lucene版本自行编译。
- 下载
IK Analyzer 2012FF_hf1_source.rar
源码文件 - 新建Maven工程groupId为
org.wltea
,将源码中的工程和配置文件复制到相应目录下。 - 查看各个源码java文件,去maven官网找到缺少的相对应的lucene对应版本的依赖包。
包括:
Lucene Core
Lucene Common Analyzers
Lucene QueryParsers 根据当前lucene版本修改过时的源文件的方法,以lucene6.5为例:
- 去掉
IKTokenizer.java
中的super(in);
和该方 法传入的Reader in
参数。 - 去掉
IKAnalyzer.java
中的final Reader in
和in
参数。 - 删除掉无用的
query
包和sample
包。 - 增加solr6.5中配置时需要的
IKTokenizerFactory
类继承自TokenizerFactory
,实现如下:package org.wltea.analyzer.util;import org.apache.lucene.analysis.Tokenizer;import org.apache.lucene.analysis.util.TokenizerFactory;import org.apache.lucene.util.AttributeFactory;import org.wltea.analyzer.lucene.IKTokenizer;import java.util.Map;/*** Created by jooop on 2017-05-02.*/public class IKTokenizerFactory extends TokenizerFactory {private boolean useSmart;public IKTokenizerFactory(Map<String, String> args) {super(args);useSmart = getBoolean(args,"useSmart",false);}public Tokenizer create(AttributeFactory attributeFactory) {Tokenizer tokenizer = new IKTokenizer(useSmart);return tokenizer;}}
- 去掉
在pom.xml中加入打包时包括dic和xml的配置,最终pom.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?><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</groupId><artifactId>ikanalyzer</artifactId><version>6.5.1</version><dependencies><!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core --><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-core</artifactId><version>${version}</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-analyzers-common --><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-analyzers-common</artifactId><version>${version}</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-queryparser --><dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-queryparser</artifactId><version>${version}</version></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.dic</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.dic</include><include>**/*.xml</include></includes></resource></resources></build></project>dos下进入项目目录使用maven命令打包
mvn package
完成编译。
引入jar包
solr目录下新建文件夹,目录如D:\solr-6.5.1\ext\ikanalyer
,将上述过程编译好的jar包放入该目录。
修改前面提到的solrconfig.xml
文件,在`<lib dir="………………"/>
此处标签相应位置加入IK分词器的jar包目录:<lib dir="${solr.install.dir:../../../..}/ext/ikanalyer" regex=".*\.jar" />