[size=medium]1.solr分词的主要配置文件之一: schema.xml,添加IKAnalyzer 2012FF_hf1分词配置方式一如下:[/size]
[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]
[size=medium]6.将此类打包到IKAnalyzer2012FF_u1.jar中,接下来修改schema.xml,添加第二种IKAnalyzer 2012FF_hf1分词配置方式,使其支持智能分词(useSmart用来制定是否使用智能分词):[/size]
[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]
<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]