Apache Solr 4.9.0和 IKAnalyzer中文分词配置
2015-02-09 13:20
555 查看
上一次我们成功配置了Solr搜索以及IKAnalyzer的中文分词,但是在IKAnalyzer_2012FF_hf1版本的IKAnalyzer类中没有读取配置中的useSmart属性,所以在建立索引和查询索引中都使用的是细粒度分词。网上找到了他人分享的方法,解决了这个问题。
方法是创建了两个类IKAnalyzerWithSmart(默认智能分词)和IKAnalyzerWithoutSmart(默认细粒度分词),再重新导出jar包,将jar包放到solr-4.9.0\example\solr-webapp\webapp\WEB-INF\lib目录下,并修改schema.xml文件内容如下,这样就能够在创建索引时使用智能分词,在查询索引时使用细粒度分词。
<fieldType name=“text_ik” class=“solr.TextField”>
<analyzer type=“index” class=“org.wltea.analyzer.lucene.IKAnalyzerWithSmart” />
<analyzer type=“query” class=“org.wltea.analyzer.lucene.IKAnalyzerWithoutSmart” />
</fieldType>
效果预览
相关步骤:
1、下载IKAnalyzer源代码
源代码文件名:IK Analyzer 2012FF_hf1_source.rar,如果谷歌上不去可以下载网盘里的,都一样
谷歌下载地址:https://code.google.com/p/ik-analyzer/
2、导入IKAnalyzer源代码
这里呢我们需要用到eclipse,如果电脑上没有的话可以下载安装一个
1)首先打开eclipse,选择File–>New–>Project,
2)选择Java–>Java Project,点击Next,
3)输入Project name:IKAnalyzer_2012FF_hf1_custom,点击Finish
4)打开解压后的IKAnalyzer source文件夹,复制src下的org文件夹,拷贝到刚刚创建的java项目IKAnalyzer_2012FF_hf1_custom下的src目录。刷新左侧列表,发现有好多红叉
这是因为IKAnalyzer引用的jar包没有被导入的关系,那么我们来导入相关jar包。
3、导入相关jar文件
第一个错误是这里,IKAnalyzer.java:
鼠标放上去提示是:The import org.apache cannot be resolved,因为他这里导入的是org.apache.lucene,所以要去下载Apache Lucene 4.9.0,下载后解压。
官方下载地址:http://www.apache.org/dyn/closer.cgi/lucene/java/4.9.0
解压后右键单击项目名称IKAnalyzer_2012FF_hf1_custom,选择最下面的Properties,或者按快捷键Alt+Enter,接下来选Java Build Path–>Libraries–>Add External JARs,找到我们刚刚解压的Lucene文件夹,选择lucene-4.9.0\core\lucene-core-4.9.0.jar这个jar文件,OK
这样就导入了一个jar包,接下来已同样的方法导入下面两个文件:
lucene-4.9.0\queryparser\lucene-queryparser-4.9.0.jar
lucene-4.9.0\analysis\common\lucene-analyzers-common-4.9.0.jar
4、创建类
右键单击org.wltea.analyzer.lucene包,选择New–>Class,Name处填写:IKAnalyzerWithSmart,点击Finish
粘帖下面的代码,IKAnalyzerWithSmart.java:
package org.wltea.analyzer.lucene;
import java.io.Reader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Tokenizer;
/**
* @Description: TODO
*/
public final class IKAnalyzerWithSmart extends Analyzer{
private boolean useSmart = true;
public boolean useSmart() {
return useSmart;
}
public void setUseSmart(boolean useSmart) {
this.useSmart = useSmart;
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* 默认细粒度切分算法
*/
public IKAnalyzerWithSmart(){
this(true);
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* @param useSmart 当为true时,分词器进行智能切分
*/
public IKAnalyzerWithSmart(boolean useSmart){
super();
this.useSmart = useSmart;
}
/**
* 重载Analyzer接口,构造分词组件
*/
@Override
protected TokenStreamComponents createComponents(String fieldName, final Reader in) {
Tokenizer _IKTokenizer = new IKTokenizer(in , this.useSmart());
return new TokenStreamComponents(_IKTokenizer);
}
}
同样的方法创建IKAnalyzerWithoutSmart类,IKAnalyzerWithoutSmart.java:
package org.wltea.analyzer.lucene;
import java.io.Reader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Tokenizer;
/**
* @Description: TODO
*/
public final class IKAnalyzerWithoutSmart extends Analyzer{
private boolean useSmart = false;
public boolean useSmart() {
return useSmart;
}
public void setUseSmart(boolean useSmart) {
this.useSmart = useSmart;
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* 默认细粒度切分算法
*/
public IKAnalyzerWithoutSmart(){
this(false);
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* @param useSmart 当为true时,分词器进行智能切分
*/
public IKAnalyzerWithoutSmart(boolean useSmart){
super();
this.useSmart = useSmart;
}
/**
* 重载Analyzer接口,构造分词组件
*/
@Override
protected TokenStreamComponents createComponents(String fieldName, final Reader in) {
Tokenizer _IKTokenizer = new IKTokenizer(in , this.useSmart());
return new TokenStreamComponents(_IKTokenizer);
}
}
4、导出jar文件
鼠标右键单击项目,Export–>Java–>JAR File–>Next,点击Browse,选择jar存放的路径,记得输入文件名,保存后点击Finish,jar文件导出完毕。
转自:http://www.xdps.org/2014/08/10/237/
方法是创建了两个类IKAnalyzerWithSmart(默认智能分词)和IKAnalyzerWithoutSmart(默认细粒度分词),再重新导出jar包,将jar包放到solr-4.9.0\example\solr-webapp\webapp\WEB-INF\lib目录下,并修改schema.xml文件内容如下,这样就能够在创建索引时使用智能分词,在查询索引时使用细粒度分词。
<fieldType name=“text_ik” class=“solr.TextField”>
<analyzer type=“index” class=“org.wltea.analyzer.lucene.IKAnalyzerWithSmart” />
<analyzer type=“query” class=“org.wltea.analyzer.lucene.IKAnalyzerWithoutSmart” />
</fieldType>
效果预览
相关步骤:
1、下载IKAnalyzer源代码
源代码文件名:IK Analyzer 2012FF_hf1_source.rar,如果谷歌上不去可以下载网盘里的,都一样
谷歌下载地址:https://code.google.com/p/ik-analyzer/
2、导入IKAnalyzer源代码
这里呢我们需要用到eclipse,如果电脑上没有的话可以下载安装一个
1)首先打开eclipse,选择File–>New–>Project,
2)选择Java–>Java Project,点击Next,
3)输入Project name:IKAnalyzer_2012FF_hf1_custom,点击Finish
4)打开解压后的IKAnalyzer source文件夹,复制src下的org文件夹,拷贝到刚刚创建的java项目IKAnalyzer_2012FF_hf1_custom下的src目录。刷新左侧列表,发现有好多红叉
这是因为IKAnalyzer引用的jar包没有被导入的关系,那么我们来导入相关jar包。
3、导入相关jar文件
第一个错误是这里,IKAnalyzer.java:
鼠标放上去提示是:The import org.apache cannot be resolved,因为他这里导入的是org.apache.lucene,所以要去下载Apache Lucene 4.9.0,下载后解压。
官方下载地址:http://www.apache.org/dyn/closer.cgi/lucene/java/4.9.0
解压后右键单击项目名称IKAnalyzer_2012FF_hf1_custom,选择最下面的Properties,或者按快捷键Alt+Enter,接下来选Java Build Path–>Libraries–>Add External JARs,找到我们刚刚解压的Lucene文件夹,选择lucene-4.9.0\core\lucene-core-4.9.0.jar这个jar文件,OK
这样就导入了一个jar包,接下来已同样的方法导入下面两个文件:
lucene-4.9.0\queryparser\lucene-queryparser-4.9.0.jar
lucene-4.9.0\analysis\common\lucene-analyzers-common-4.9.0.jar
4、创建类
右键单击org.wltea.analyzer.lucene包,选择New–>Class,Name处填写:IKAnalyzerWithSmart,点击Finish
粘帖下面的代码,IKAnalyzerWithSmart.java:
package org.wltea.analyzer.lucene;
import java.io.Reader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Tokenizer;
/**
* @Description: TODO
*/
public final class IKAnalyzerWithSmart extends Analyzer{
private boolean useSmart = true;
public boolean useSmart() {
return useSmart;
}
public void setUseSmart(boolean useSmart) {
this.useSmart = useSmart;
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* 默认细粒度切分算法
*/
public IKAnalyzerWithSmart(){
this(true);
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* @param useSmart 当为true时,分词器进行智能切分
*/
public IKAnalyzerWithSmart(boolean useSmart){
super();
this.useSmart = useSmart;
}
/**
* 重载Analyzer接口,构造分词组件
*/
@Override
protected TokenStreamComponents createComponents(String fieldName, final Reader in) {
Tokenizer _IKTokenizer = new IKTokenizer(in , this.useSmart());
return new TokenStreamComponents(_IKTokenizer);
}
}
同样的方法创建IKAnalyzerWithoutSmart类,IKAnalyzerWithoutSmart.java:
package org.wltea.analyzer.lucene;
import java.io.Reader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Tokenizer;
/**
* @Description: TODO
*/
public final class IKAnalyzerWithoutSmart extends Analyzer{
private boolean useSmart = false;
public boolean useSmart() {
return useSmart;
}
public void setUseSmart(boolean useSmart) {
this.useSmart = useSmart;
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* 默认细粒度切分算法
*/
public IKAnalyzerWithoutSmart(){
this(false);
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* @param useSmart 当为true时,分词器进行智能切分
*/
public IKAnalyzerWithoutSmart(boolean useSmart){
super();
this.useSmart = useSmart;
}
/**
* 重载Analyzer接口,构造分词组件
*/
@Override
protected TokenStreamComponents createComponents(String fieldName, final Reader in) {
Tokenizer _IKTokenizer = new IKTokenizer(in , this.useSmart());
return new TokenStreamComponents(_IKTokenizer);
}
}
4、导出jar文件
鼠标右键单击项目,Export–>Java–>JAR File–>Next,点击Browse,选择jar存放的路径,记得输入文件名,保存后点击Finish,jar文件导出完毕。
转自:http://www.xdps.org/2014/08/10/237/
相关文章推荐
- Apache Solr 4.9 和 IKAnalyzer中文分词配置(上)
- Apache Solr 4.9 和 IKAnalyzer中文分词配置(下)
- 配置solr4.10.0和中文分词IKAnalyzer
- solr 5.5.1安装并配置中文分词IKAnalyzer
- solr 扩展中文分词 IKAnalyzer 配置文件路径
- 在Solr中配置中文分词IKAnalyzer
- Apache Solr单机环境配置(包括中文分词和Java API的使用)
- WinXP+cygwin+eclipse配置nutch-1.2,添加IKAnalyzer中文分词
- Solr之——配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer
- Lucene-IKAnalyzer(中文分词)基于配置的词典扩充
- Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)
- Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)
- Solr中文分词配置(IKAnalyzer)
- 【solr】Solr中文分词配置(IKAnalyzer)
- solr 3.4配置中文分词IKAnalyzer3.2.8
- 【Apache Solr系列】使用IKAnalyzer中文分词以及自定义分词字典
- Apache Solr(介绍、安装部署、Java接口、中文分词)
- Lucene学习——IKAnalyzer中文分词(二)
- 使用Lucene和IKAnalyzer实现 中文简单 分词
- Solr配置,schema.xml的配置,以及中文分词