近日公司开始改造旧有的搜索系统,用到solr4,而且本人关注IK分词器比较多。发现IK 2012对TokenizerFactory不支持,缺乏这个支持的话,有很多自定义配置功能用不上。
故开发此代码,兼容Solr4分词功能
代码测试可用
附件附上对IK2012代码的二次编译jar包
IKTokenizerFactory
package org.wltea.analyzer.henry;
import java.io.IOException;
import java.io.Reader;
import java.util.Map;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.util.ResourceLoader;
import org.apache.lucene.analysis.util.ResourceLoaderAware;
import org.apache.lucene.analysis.util.TokenizerFactory;
import org.wltea.analyzer.lucene.IKTokenizer;
/**
* 主要用于Solr分词使用
*
* @author niko
* @date 2012-12-25
* @version
*/
public class IKTokenizerFactory extends TokenizerFactory implements ResourceLoaderAware {
private boolean useSmart;
@Override
public void init(Map<String, String> args) {
super.init(args);
assureMatchVersion();
}
@Override
public Tokenizer create(Reader input) {
IKTokenizer ikTokenizer = new IKTokenizer(input, useSmart);
return ikTokenizer;
}
@Override
public void inform(ResourceLoader loader) throws IOException {
useSmart = getBoolean("useSmart", true);
}
}
schema.xml调用方法:
<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.henry.IKTokenizerFactory" useSmart="true"/>
<!--
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
-->
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.henry.IKTokenizerFactory" useSmart="false"/>
<!--
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
-->
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
分享到:
相关推荐
4. **重新加载Schema**:完成配置后,需要在Solr管理界面或通过API命令来重新加载Schema,使改动生效。 值得注意的是,由于描述中提到对Solr7的支持未经过测试,因此在Solr7或更高版本上使用ikanalyzer可能需要额外...
描述中提到的"solr中文分词器 IKAnalyzer 支持solr版本5.x到7.x 亲测可用,我用的是7.2版本"进一步证实了IKAnalyzer在Solr 7.2版本中的实际应用,这为其他用户提供了信心,确保了在不同Solr版本下的稳定运行。...
标题中的"IKAnalyzer 支持Solr-5.5.0"表明了这个压缩包是为集成IK Analyzer到Apache Solr 5.5.0版本而准备的。IK Analyzer是一款针对中文分词的开源工具,它在处理中文文本时表现优秀,能够提高搜索引擎的检索效果。...
针对中文进行修改的拼音分词器,很强大,支持首字母搜索、全拼搜索,首字母+全拼搜索!配置如下:<fieldtype name="text_pinyin" class="solr.TextField"> <tokenizer class="org.wltea.analyzer.solr....
相较于 Lucene,Solr 提供了更为丰富的查询语言支持,并且具备高度可配置性和可扩展性,针对索引和搜索性能进行了专门优化。 - **查询语言丰富**:Solr 支持多种查询方式,如简单查询、高级查询、近似匹配等。 - **...
IKAnalyzer5.2.1根据IKAnalyzer2012FF_u1_custom基础上修改,支持lucence5.x以上版本。增加连续数字、字母、英语及其组合智能分词(可关闭isIndistinct)支持lucence5.x以上版本。配置文件:...
总的来说,IKAnalyzer是一个对Solr支持良好的中文分词器,它为处理中文数据提供了强大的支持,提升了搜索的准确性和性能。在使用过程中,你可以根据实际需求调整分词器的配置,如自定义字典、选择分词模式等,以满足...
Solr支持多种缓存机制,包括QueryResultCache、FieldValueCache等,这些缓存可以帮助提高搜索性能。 1. **Cache生命周期**:了解各种缓存的生命周期管理机制,比如何时清理缓存、如何设置最大容量等。 2. **使用...
这个压缩包文件"iK分词器【solr4版本】.zip"显然是针对Apache Solr 4版本定制的iK分词器版本。下面我们将详细讨论iK分词器及其在Solr 4中的应用和配置。 首先,让我们了解一下iK分词器。iK全称为“Intelligent ...
<tokenizer class="com.smartling.solr.IKTokenizerFactory"/> <tokenizer class="com.smartling.solr.IKTokenizerFactory"/> ``` #### 三、解决Solr服务器中文乱码问题 **问题描述:** 在使用Solr...
在部署Solr时,首先确保你的环境满足最低要求,即使用JDK 1.8或更高版本,因为Solr 6.x以上版本需要这个版本的Java支持。你可以选择两种方式来部署Solr:一种是使用内置的Jetty服务器,另一种是通过Tomcat这样的外部...
支持Spring-data-solr1.5的ik分词器,并且修改了代码,添加一个新的类,用于支持同义词,目前可以同时支持分词和同义词的功能。 修改 managed-schema,添加 <fieldType name="text_lk" class="solr.TextField"> ...
4. **重启Solr**:保存对schema.xml的修改后,需要重启Solr服务以使改动生效。 5. **测试与优化**:启动Solr后,可以通过Solr的Admin UI或者API进行分词测试,查看分词效果。根据实际需求,可能还需要调整IK分词器...
### Solr 3.5配置及应用...通过这些步骤,用户可以快速搭建起一个基本的Solr搜索环境,并实现中文分词的支持,这对于初学者来说是非常重要的第一步。随着对Solr更深入的理解,用户还可以探索更多高级特性和应用场景。
IKAnalyzer5.2.1根据IKAnalyzer2012FF_u1_custom基础上修改,支持lucence5.x以上版本。增加连续数字、字母、英语及其组合智能分词(可关闭isIndistinct)支持lucence5.x以上版本。配置文件:...
标题提到的"ik-analyzer 7.5.0"是Ik Analyzer的一个特定版本,这个版本包含了对Solr的支持,并且提供了类(class)配置,使得用户可以方便地集成到Solr环境中。Ik Analyzer的发展历程中,不断优化了分词效果,提高了...
Solr支持多种中文分词器,如IK Analyzer、Smart Chinese Analyzer、Paoding Analyzer等,它们各自有不同的特性和适用场景。 1. IK Analyzer:是一款开源的Java语言实现的中文分词工具,支持词典动态更新,对新词...
<fieldType name="text_ik" class="solr.IkTokenizerFactory" /> ``` - 重新启动Solr服务:在命令提示符窗口中切换到Solr的`example`目录,再次执行`java -jar start.jar`。 - 在Solr管理界面上测试中文分词...
Solr 环境搭建需要 JRE 环境的支持,因此我们首先需要安装 JRE 环境。然后,我们需要下载 Solr 的安装包, Solr 的下载地址为:http://labs.renren.com/apache-mirror//lucene/solr/3.3.0/apache-solr-3.3.0.zip。 ...