Solr 4.10.2整合IKAnalyzer 2012FF_hf1 智能分析与细粒度分析配置useSmart

[size=medium]1.solr分词的主要配置文件之一: schema.xml,添加IKAnalyzer 2012FF_hf1分词配置方式一如下:[/size]
 <fieldType name="text_cn" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>

[size=medium]2.将[color=darkred]IKAnalyzer2012FF_u1.jar[/color]放到[b]%SOLR_HOME%/example/solr-webapp/webapp/WEB-INF/lib[/b]下。
3.cd %SOLR_HOME%/example/执行:
[b]java -jar start.jar[/b]
4.访问:[url]http://localhost:8983/solr[/url]
选择coreName:collection1 -->Analysis,Analyse Fieldname / FieldType:这里选择我们定义的text_cn,接着执行中文分词测试:[/size]

[img]http://dl2.iteye.com/upload/attachment/0103/1512/61e5f8d4-60ba-3954-b9e7-f5704bb4e619.jpg[/img]

[size=medium]5.由分词结果可知,IKAnalyzer的默认分词模式为细粒度分词,但有的时候我们想要却是智能分词。此版本去除了之前提供的IKTokenizerFactory,故此重新实现,让其支持智能分词。
实现代码如下:[/size]
package org.wltea.analyzer.lucene;

import java.io.Reader;
import java.util.Map;

import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.util.TokenizerFactory;
import org.apache.lucene.util.AttributeFactory;

public class IKTokenizerFactory extends TokenizerFactory{
private final boolean useSmart;
public IKTokenizerFactory(Map<String, String> args) {
super(args);
this.useSmart = getBoolean(args, "useSmart", false);

}

@Override
public Tokenizer create(AttributeFactory factory, Reader in) {
return new IKTokenizer(in,this.useSmart);
}

}

[size=medium]6.将此类打包到IKAnalyzer2012FF_u1.jar中,接下来修改schema.xml,添加第二种IKAnalyzer 2012FF_hf1分词配置方式,使其支持智能分词(useSmart用来制定是否使用智能分词):[/size]
<fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

[size=medium]7.重新启动solr,进行分词测试:[/size]

[img]http://dl2.iteye.com/upload/attachment/0103/1514/79f863af-61d4-3892-934e-b3c26e566eb9.jpg[/img]

[size=medium]可以看到index采用的为默认的细粒度分词,query采用的为智能分词.
到此,简单的solr中文分词server搭建完毕,接下来准备使用spring-data-solr构建搜索,索引创建,更新,高亮等后续操作,且听下回忽悠。。。。[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值