`
henry2009
  • 浏览: 93475 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

支持Solr4的IKTokenizerFactory

阅读更多

近日公司开始改造旧有的搜索系统,用到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>
分享到:
评论
1 楼 snowpeakjava 2014-10-10  
您好,我现在也遇到同样的问题,使用您写的IKTokenizerFactory 类后,配置上去后就找不到节点了。在管理页面上新增节点时有报错。谢谢!

相关推荐

    支持solr6.x的中文分词,对solr7的支持暂时没有测试过

    4. **重新加载Schema**:完成配置后,需要在Solr管理界面或通过API命令来重新加载Schema,使改动生效。 值得注意的是,由于描述中提到对Solr7的支持未经过测试,因此在Solr7或更高版本上使用ikanalyzer可能需要额外...

    solr 中文分词其IKAnalyzer 支持solr版本5.X-7.X

    描述中提到的"solr中文分词器 IKAnalyzer 支持solr版本5.x到7.x 亲测可用,我用的是7.2版本"进一步证实了IKAnalyzer在Solr 7.2版本中的实际应用,这为其他用户提供了信心,确保了在不同Solr版本下的稳定运行。...

    IKAnalyzer 支持Solr-5.5.0

    标题中的"IKAnalyzer 支持Solr-5.5.0"表明了这个压缩包是为集成IK Analyzer到Apache Solr 5.5.0版本而准备的。IK Analyzer是一款针对中文分词的开源工具,它在处理中文文本时表现优秀,能够提高搜索引擎的检索效果。...

    中文拼音分词器

    针对中文进行修改的拼音分词器,很强大,支持首字母搜索、全拼搜索,首字母+全拼搜索!配置如下:&lt;fieldtype name="text_pinyin" class="solr.TextField"&gt; &lt;tokenizer class="org.wltea.analyzer.solr....

    solr的安装使用步骤

    相较于 Lucene,Solr 提供了更为丰富的查询语言支持,并且具备高度可配置性和可扩展性,针对索引和搜索性能进行了专门优化。 - **查询语言丰富**:Solr 支持多种查询方式,如简单查询、高级查询、近似匹配等。 - **...

    IKAnalyzer5.2.1src增加连续数字、字母、英语智能分词支持solr5.x以上、lucence5.x以上版本

    IKAnalyzer5.2.1根据IKAnalyzer2012FF_u1_custom基础上修改,支持lucence5.x以上版本。增加连续数字、字母、英语及其组合智能分词(可关闭isIndistinct)支持lucence5.x以上版本。配置文件:...

    ik-analyzer-solr7.zip

    总的来说,IKAnalyzer是一个对Solr支持良好的中文分词器,它为处理中文数据提供了强大的支持,提升了搜索的准确性和性能。在使用过程中,你可以根据实际需求调整分词器的配置,如自定义字典、选择分词模式等,以满足...

    Solr(Cloudera)使用手册

    Solr支持多种缓存机制,包括QueryResultCache、FieldValueCache等,这些缓存可以帮助提高搜索性能。 1. **Cache生命周期**:了解各种缓存的生命周期管理机制,比如何时清理缓存、如何设置最大容量等。 2. **使用...

    iK分词器【solr4版本】.zip

    这个压缩包文件"iK分词器【solr4版本】.zip"显然是针对Apache Solr 4版本定制的iK分词器版本。下面我们将详细讨论iK分词器及其在Solr 4中的应用和配置。 首先,让我们了解一下iK分词器。iK全称为“Intelligent ...

    solr问题及解决

    &lt;tokenizer class="com.smartling.solr.IKTokenizerFactory"/&gt; &lt;tokenizer class="com.smartling.solr.IKTokenizerFactory"/&gt; ``` #### 三、解决Solr服务器中文乱码问题 **问题描述:** 在使用Solr...

    solr文档解说吧

    在部署Solr时,首先确保你的环境满足最低要求,即使用JDK 1.8或更高版本,因为Solr 6.x以上版本需要这个版本的Java支持。你可以选择两种方式来部署Solr:一种是使用内置的Jetty服务器,另一种是通过Tomcat这样的外部...

    支持Spring-data-solr1.5的ik分词器,同义词

    支持Spring-data-solr1.5的ik分词器,并且修改了代码,添加一个新的类,用于支持同义词,目前可以同时支持分词和同义词的功能。 修改 managed-schema,添加 &lt;fieldType name="text_lk" class="solr.TextField"&gt; ...

    IK分词solr5.0.0

    4. **重启Solr**:保存对schema.xml的修改后,需要重启Solr服务以使改动生效。 5. **测试与优化**:启动Solr后,可以通过Solr的Admin UI或者API进行分词测试,查看分词效果。根据实际需求,可能还需要调整IK分词器...

    solr3.5配置及应用

    ### Solr 3.5配置及应用...通过这些步骤,用户可以快速搭建起一个基本的Solr搜索环境,并实现中文分词的支持,这对于初学者来说是非常重要的第一步。随着对Solr更深入的理解,用户还可以探索更多高级特性和应用场景。

    IKAnalyzer5.2.1增加连续数字、字母、英语智能分词支持solr5.x以上、lucence5.x以上版本

    IKAnalyzer5.2.1根据IKAnalyzer2012FF_u1_custom基础上修改,支持lucence5.x以上版本。增加连续数字、字母、英语及其组合智能分词(可关闭isIndistinct)支持lucence5.x以上版本。配置文件:...

    solr中文分词jar包ik-analyzer 含class配置 ik-analyzer-7.5.0

    标题提到的"ik-analyzer 7.5.0"是Ik Analyzer的一个特定版本,这个版本包含了对Solr的支持,并且提供了类(class)配置,使得用户可以方便地集成到Solr环境中。Ik Analyzer的发展历程中,不断优化了分词效果,提高了...

    solr 5.x 和 6.x 最新中文分词器

    Solr支持多种中文分词器,如IK Analyzer、Smart Chinese Analyzer、Paoding Analyzer等,它们各自有不同的特性和适用场景。 1. IK Analyzer:是一款开源的Java语言实现的中文分词工具,支持词典动态更新,对新词...

    Solr安装与整合中文分词IKAnalyzer

    &lt;fieldType name="text_ik" class="solr.IkTokenizerFactory" /&gt; ``` - 重新启动Solr服务:在命令提示符窗口中切换到Solr的`example`目录,再次执行`java -jar start.jar`。 - 在Solr管理界面上测试中文分词...

    最新Solr环境搭建与IKAnalyzer3分词整合.doc

    Solr 环境搭建需要 JRE 环境的支持,因此我们首先需要安装 JRE 环境。然后,我们需要下载 Solr 的安装包, Solr 的下载地址为:http://labs.renren.com/apache-mirror//lucene/solr/3.3.0/apache-solr-3.3.0.zip。 ...

Global site tag (gtag.js) - Google Analytics