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

发布 IK Analyzer 2012 FF 版本

阅读更多
首先感谢大家对IK分词器的关注。

最近一段时间正式公司事务最忙碌的时候,Lucene4.0和Solr4.0发布后,便收到了广大网友的大量邮件要求更新版本,这让我既开心又感到鸭梨大啊~~

花了3天时间,了解了Lucene4.0和solr 4.0与分词相关部分的源码。果然,又是一次不兼容的修订啊~~

时间紧迫的推出了IK Analyzer 2012 FF版本 (你问啥是FF,其实就是For 4.0),在API和功能上保持不变,只是让其支持了Lucene4.0和Solr4.0,让这部分的用户能用起来。

如果你还是Lucene3.2-3.6的用户,那么你只需要下载IK Analyzer 2012 U6版本。因为FF版本的API与3.x是不兼容的。

再次吐槽,坑爹的Lucene!!

GoogleCode下载:
http://code.google.com/p/ik-analyzer/downloads/list

IK 2012分词器介绍,请参看:
http://linliangyi2007.iteye.com/blog/1445658

补充说明一下,Solr4.0的对分词器的用法和3.x不同了,直接配置分词器即可。不用TokenizerFactory了,最新下载包已经更新说明文档






分享到:
评论
49 楼 zqb666kkk 2015-06-24  
是 的 希望楼主 更新 对solr 5.2的支持 不然只能考虑换  中文分词了 ,之前项目就用的ik 已经很熟练了 希望楼主尽快更新!
48 楼 18210607179 2015-06-11  
楼主啊,solr5.2出来啦,IK什么时候出支持5.2的版本呀,着急呀!!!!!!!!!!!!!!!!!!!!
47 楼 飘飘he所似 2014-10-27  
林sir 你好,

非常感谢你的开源项目,非常好,一直在用!!!

近期有一个百思不得其解的问题,想请教一下。

我搜“读者”、“读者证件”都可以,但是搜“读者证”就不行。
我加入“读者证”,通过加载自定义词典、还是手动加入main212.dic,编译源码都不行。
但是我在solr的analysis.jsp分析,却能正确的分词,这个是什么原因?

(修改之后,我都重新建立索引)

配置文件如下:
  
<fieldType name="text_zh" class="solr.TextField">
     <analyzer>       
       <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" />
   </analyzer>
</fieldTyp>


谢谢!
46 楼 yanghengtao 2014-07-15  
弱弱的请教一下楼主,我发现用ik分词器进行分词时,我搜索单个字母或者数字,搜索不到,这个是不是ik现在版本不支持呀?
45 楼 shliuzw 2014-07-09  
shliuzw 写道
你好,请教个问题,最大词长分词和最细粒度分词,有什么根本形区别?各自有自己的运行场景吗?


在应用中(词库中有熊猫和猫),用户输入“熊猫”,通过lucene分词成all:"熊猫 猫" OR all:"猫",但是这样all中只有熊猫的内容就不能搜索出来,请教这个怎么处理?



具体的业务中存在一些特有的词库,这些扩展的词库,有没有什么自动维护词库的方案?
44 楼 shliuzw 2014-07-09  
你好,请教个问题,最大词长分词和最细粒度分词,有什么根本形区别?各自有自己的运行场景吗?


在应用中(词库中有熊猫和猫),用户输入“熊猫”,通过lucene分词成all:"熊猫 猫" OR all:"猫",但是这样all中只有熊猫的内容就不能搜索出来,请教这个怎么处理?
43 楼 403205592 2014-06-25  
请教个问题Solr4.7版本不支持userSmart配置么,
	 <fieldType name="text_ik" class="solr.TextField">
	      <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer" userSmart="true"/>
	      <analyzer type="query" isMaxWordLength="true"  class="org.wltea.analyzer.lucene.IKAnalyzer" userSmart="true"/>
	 </fieldType>
我这样配置不起作用哦,怎么解决
42 楼 znfsky 2013-10-18  
loker_025 写道
linliangyi2007 写道
loker_025 写道
博主好!感谢博主无私奉献以及及时更新,我在配置4.0solr的时候出现如下错误。
Caused by: java.lang.RuntimeException: Can't set positionIncrementGap on custom analyzer class org.wltea.analyzer.lucene.IKAnalyzer
	at org.apache.solr.schema.FieldType.setArgs(FieldType.java:159)
	at org.apache.solr.schema.FieldTypePluginLoader.init(FieldTypePluginLoader.java:127)
	at org.apache.solr.schema.FieldTypePluginLoader.init(FieldTypePluginLoader.java:1)
	at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:190)
	... 34 more

调查代码发现solr报错的地方
 if (positionInc != null) {
      Analyzer analyzer = getAnalyzer();
      if (analyzer instanceof SolrAnalyzer) {
        ((SolrAnalyzer)analyzer).setPositionIncrementGap(Integer.parseInt(positionInc));
      } else {
        throw new RuntimeException("Can't set positionIncrementGap on custom analyzer " + analyzer.getClass());
      }
      analyzer = getQueryAnalyzer();
      if (analyzer instanceof SolrAnalyzer) {
        ((SolrAnalyzer)analyzer).setPositionIncrementGap(Integer.parseInt(positionInc));
      } else {
        throw new RuntimeException("Can't set positionIncrementGap on custom analyzer " + analyzer.getClass());
      }
      initArgs.remove("positionIncrementGap");
    }

analyzer instanceof SolrAnalyzer,看了下IK的源码,IKAnalyzer是继承lucene的Analyzer而导致报错。是我配置问题吗?还是我版本有问题?
感谢博主!



IKAnalyzer没有继承SolrAnalyzer,就如同StandardAnalyzer一样。你看一下solr4.0中如何配置StandardAnalyzer吧

收到,已经解决了!感谢

请问解决方案是什么呢?如果直接把这个字段去掉的话,那multivalue的字段怎么办呢?positionIncrementGap是必要的属性啊
41 楼 munandong 2013-06-24  
林老师 您好: IK Analyzer 2012 FF 的Dictionary词典管理类,是单子模式 , 如果要产生不同的结果需要如何做。
40 楼 linshouyi 2013-05-18  

最近项目在用ik,版本是IKAnalyzer2012_u5
请问一下:useSmart这个值是全局的吗?
我的IndexWriter用的是非智能分词器new IKAnalyzer(false),建立了一次索引后,我又创建了一个智能分词器并用它做了一次分词处理,然后IndexWriter建立的索引都是走的智能分词,是不是有bug?

Java代码
    public static void write() throws CorruptIndexException, LockObtainFailedException, IOException { 
//创建的是非智能分词,结果是非智能分词,结果是:中国/黄海/海军/军演/,没有问题。 
        IndexWriter writer = new IndexWriter(FSDirectory.open(file), new IndexWriterConfig(Version.LUCENE_36, new IKAnalyzer(false))); 
        Document doc = new Document(); 
        Field field = new Field("title", "中国黄海军演", Store.YES, Index.ANALYZED); 
        doc.add(field); 
        try { 
            writer.addDocument(doc); 
            writer.commit(); 
        } catch (CorruptIndexException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } catch (IOException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } 
//创建了一个智能分词器,使用这个分词器做了一次分词处理 
        Analyzer ik = new IKAnalyzer(true); 
        TokenStream ts = ik.tokenStream("",  new StringReader("联合国儿童基金会")); 
        CharTermAttribute att = (CharTermAttribute) ts.getAttribute(CharTermAttribute.class);  
        while (ts.incrementToken()) {  
          System.out.print(att.toString()+"/"); //打印分词结果 
        } 
//还是之前的indexWriter,这次建立的索引都是智能分词的结果。结果为:联合国儿童基金会,就一个词了,有问题,非智能分词结果应该是:联合国儿童基金会/联合国/联合/国/儿童/基金会/基金 
        Document doc1 = new Document(); 
        Field field1 = new Field("title", "联合国儿童基金会", Store.YES, Index.ANALYZED); 
        doc1.add(field1); 
        try { 
            writer.addDocument(doc1); 
            writer.commit(); 
        } catch (CorruptIndexException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } catch (IOException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } 
        writer.close(); 
    } 
不知道我说清楚了没有。
39 楼 awl910213 2013-05-09  
linliangyi2007 写道
loker_025 写道
博主好!感谢博主无私奉献以及及时更新,我在配置4.0solr的时候出现如下错误。
Caused by: java.lang.RuntimeException: Can't set positionIncrementGap on custom analyzer class org.wltea.analyzer.lucene.IKAnalyzer
	at org.apache.solr.schema.FieldType.setArgs(FieldType.java:159)
	at org.apache.solr.schema.FieldTypePluginLoader.init(FieldTypePluginLoader.java:127)
	at org.apache.solr.schema.FieldTypePluginLoader.init(FieldTypePluginLoader.java:1)
	at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:190)
	... 34 more

调查代码发现solr报错的地方
 if (positionInc != null) {
      Analyzer analyzer = getAnalyzer();
      if (analyzer instanceof SolrAnalyzer) {
        ((SolrAnalyzer)analyzer).setPositionIncrementGap(Integer.parseInt(positionInc));
      } else {
        throw new RuntimeException("Can't set positionIncrementGap on custom analyzer " + analyzer.getClass());
      }
      analyzer = getQueryAnalyzer();
      if (analyzer instanceof SolrAnalyzer) {
        ((SolrAnalyzer)analyzer).setPositionIncrementGap(Integer.parseInt(positionInc));
      } else {
        throw new RuntimeException("Can't set positionIncrementGap on custom analyzer " + analyzer.getClass());
      }
      initArgs.remove("positionIncrementGap");
    }

analyzer instanceof SolrAnalyzer,看了下IK的源码,IKAnalyzer是继承lucene的Analyzer而导致报错。是我配置问题吗?还是我版本有问题?
感谢博主!



IKAnalyzer没有继承SolrAnalyzer,就如同StandardAnalyzer一样。你看一下solr4.0中如何配置StandardAnalyzer吧

麻烦说下怎么配置?我的配置里必须要有这个positionIncrementGap
38 楼 Iloseyou 2013-04-26  
爱上了你就等于爱上了错
分词结果出现2次  爱上 上了
37 楼 deepeye 2013-04-08  
林老师,请问IK Analyzer 2012 FF版本在solr4.2版可以正常使用吗
36 楼 a57595135a 2013-04-08  
大侠solr 4.2中 useSmart 不管用了。

<fieldType name="text_cn" class="solr.TextField">
<analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"  useSmart ="true" />
<analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"  useSmart ="true" />
</fieldType>
35 楼 Java_大猫 2013-03-08  
Iloseyou 写道
Java_大猫 写道
Iloseyou 写道
Java_大猫 写道
Java_大猫 写道
你好,我扩暂词库 失效啊 不起作用。
http://blog.sina.com.cn/s/blog_4c9d7da201013wv2.html
代码完全参考这个做的
为什么呢?请帮忙


对不起LZ,是我的疏忽,问题解决了

google里下载了最新版本FF hf1还是不起作用哦。。。


你需要在web-inf 下自己创建classes文件把 xml 和dic 放到里面就可以了

ok 可以了

同义词过滤你怎么配置的?
34 楼 Iloseyou 2013-03-08  
Java_大猫 写道
Iloseyou 写道
Java_大猫 写道
Java_大猫 写道
你好,我扩暂词库 失效啊 不起作用。
http://blog.sina.com.cn/s/blog_4c9d7da201013wv2.html
代码完全参考这个做的
为什么呢?请帮忙


对不起LZ,是我的疏忽,问题解决了

google里下载了最新版本FF hf1还是不起作用哦。。。


你需要在web-inf 下自己创建classes文件把 xml 和dic 放到里面就可以了

ok 可以了
33 楼 Java_大猫 2013-03-07  
Iloseyou 写道
Java_大猫 写道
Java_大猫 写道
你好,我扩暂词库 失效啊 不起作用。
http://blog.sina.com.cn/s/blog_4c9d7da201013wv2.html
代码完全参考这个做的
为什么呢?请帮忙


对不起LZ,是我的疏忽,问题解决了

google里下载了最新版本FF hf1还是不起作用哦。。。


你需要在web-inf 下自己创建classes文件把 xml 和dic 放到里面就可以了
32 楼 Java_大猫 2013-03-07  
Iloseyou 写道
Iloseyou 写道
Java_大猫 写道
Java_大猫 写道
你好,我扩暂词库 失效啊 不起作用。
http://blog.sina.com.cn/s/blog_4c9d7da201013wv2.html
代码完全参考这个做的
为什么呢?请帮忙


对不起LZ,是我的疏忽,问题解决了

google里下载了最新版本FF hf1还是不起作用哦。。。

lucene使用了4.1版本

我的分词配置完了,我现在想知道 升级到4.1后。filter 那里怎么去配置,尤其同义词的部分
31 楼 Iloseyou 2013-03-07  
Iloseyou 写道
Java_大猫 写道
Java_大猫 写道
你好,我扩暂词库 失效啊 不起作用。
http://blog.sina.com.cn/s/blog_4c9d7da201013wv2.html
代码完全参考这个做的
为什么呢?请帮忙


对不起LZ,是我的疏忽,问题解决了

google里下载了最新版本FF hf1还是不起作用哦。。。

lucene使用了4.1版本
30 楼 Iloseyou 2013-03-07  
Java_大猫 写道
Java_大猫 写道
你好,我扩暂词库 失效啊 不起作用。
http://blog.sina.com.cn/s/blog_4c9d7da201013wv2.html
代码完全参考这个做的
为什么呢?请帮忙


对不起LZ,是我的疏忽,问题解决了

google里下载了最新版本FF hf1还是不起作用哦。。。

相关推荐

    IKAnalyzer2012FF_hf1.zip

    标题中的"IKAnalyzer2012FF_hf1.zip"指的是IK Analyzer的2012年最终版(Final)的高频率更新1(Hot Fix 1)。IK Analyzer是一款开源的、基于Java语言开发的轻量级中文分词器,主要用于Java环境下对中文文本的分词...

    IK Analyzer 2012FF_hf1.7z

    "2012FF_hf1.7z" 是IK Analyzer的一个特定版本,可能包含了优化和改进,适应了2012年及之后的技术需求。 在Solr中,分词器扮演着至关重要的角色。它们负责将输入的中文文本分解成一系列的词汇单元,这些单元通常被...

    IKAnalyzer2012FF_u1.jar

    使用IK分词器,应为该集群使用到的solr版本为4.10.3-cdh5.7.5,所以使用的 IK 包为IKAnalyzer2012FF_u1.jar,如果是3x的solr,使用IKAnalyzer2012_u6.jar solr-4.10.3下载地址:...

    IKAnalyzer2012FF_u1.jar下载

    IKAnalyzer2012FF_u1.jar 是一款广泛应用于Java环境中的中文分词库,尤其在搜索引擎和文本分析领域有着重要的应用。这个jar包包含了IK Analyzer的最新版本,即2012FF_u1更新版,它是一款开源的、高性能的中文分词...

    IK Analyzer 2012FF_hf1和IKAnalyzer2012_u6

    标题提到的 "IK Analyzer 2012FF_hf1" 和 "IKAnalyzer2012_u6" 都是该分词器的不同版本。 IK Analyzer 2012FF_hf1 是2012年发布的HotFix 1更新版,"FF" 可能代表 "Final Fix",意味着这是对之前版本的最终修复,而 ...

    IK Analyzer 2012FF_hf1及IK Analyzer 2012FF_hf1_source位于GOOGLE_CODE的资源转发

    2012FF_hf1 版本是IK Analyzer的一个特定版本,HF1代表Hot Fix 1,即该版本是对2012FF版本的小幅修正版。 IK Analyzer 2012FF_hf1 版本在原有的基础上进行了性能优化和错误修复,确保了其在处理中文文本时的准确性...

    ikanalyzer2012ff_u1

    ikanalyzer2012ff_u1 是一个专为Solr 4.10.3版本设计的IK分词器插件。在中文信息检索和文本分析领域,分词器扮演着至关重要的角色,它能够将连续的汉字序列切分成具有语义意义的词语单元,便于后续的索引和查询操作...

    IK Analyzer 2012FF_hf1.zip

    IK Analyzer 2012FF_hf1.zipIK Analyzer 2012FF_hf1.zipIK Analyzer 2012FF_hf1.zipIK Analyzer 2012FF_hf1.zip

    IKAnalyzer2012FF_u1.jar同义词版本

    IKAnalyzer2012FF_u1.jar,同义词版本,本人亲测,木有问题,可以配置Solr的同义词,

    IKAnalyzer2012FF_u1中文分词器

    IKAnalyzer2012FF_u1是该分词器的一个特定版本,"FF"可能代表Final Full,表示这是该系列的最终完整版,而"u1"可能是Update 1,意味着这是第一次重大更新。这个版本通常包含了对之前版本的改进和修复,以提高稳定性...

    原版_IK_Analyzer _2012_FF_hf_1

    3. **丰富的API**:提供的API接口使得开发者能够方便地集成到各种应用中,例如IKAnalyzer2012FF_u1.jar库文件提供了Java接口。 4. **使用手册**:IKAnalyzer中文分词器V2012_FF使用手册.pdf详尽介绍了如何安装、配置...

    IK Analyzer 2012FF_hf1

    **IK Analyzer 2012FF_hf1** 是一个基于Java实现的开源中文分词器,主要用于提高中文文本处理的效率和准确性。这个版本是针对2012年发布的基础版进行了优化和修复,增加了对某些特定场景的兼容性和性能提升。与**...

    IKAnalyzer2012FF_u1 ik solr分词器

    IKAnalyzer2012FF_u1是一款针对中文分词的开源工具,主要应用于搜索引擎和文本分析领域,尤其在Solr中被广泛使用。这个版本是IK Analyzer的2012最终版更新1(Final Full Update 1),它提供了一种高效、灵活的中文...

    IKAnalyzer 2012FF_u1

    **IKAnalyzer 2012FF_u1** 是一个专门针对中文处理的开源分词工具,主要用于信息检索、搜索引擎和自然语言处理等场景。这款工具是基于Java开发的,能够很好地与Lucene这样的全文检索库集成,特别是它声明支持Lucene ...

    IK Analyzer 2012FF_u1.rar

    3. 在Solr的schema.xml中配置Analyzer,指定使用IKAnalyzer,并根据需要配置词典和参数。 4. 重启Solr服务,使更改生效。 总的来说,IK Analyzer 2012FF_hf1是专为Solr4.x设计的优化版分词器,它提供了高效的中文...

    IKAnalyzer分词器 下载IKAnalyzer2012FF_u1.jar

    使用IK分词器,应为该集群使用到的solr版本为4.10.3-cdh5.7.5,所以使用的 IK 包为IKAnalyzer2012FF_u1.jar,如果是3x的solr,使用IKAnalyzer2012_u6.jar 具体操作如下: 引用 1.在/opt/cloudera/parcels/CDH/lib/...

Global site tag (gtag.js) - Google Analytics