论坛首页 Java企业应用论坛

发布IKAnnlyzer3.2.0稳定版 for Lucene3.0

浏览 27879 次
该帖已经被评为良好帖
作者 正文
   发表时间:2010-01-27  
ajonjun 写道
开源代码能共享下吗?


当然可以啊,既然是开源项目哪有没代码的,哈哈。

上IK的google code站点吧,有rar包的源码,也有svn方式的下载。
0 请登录后投票
   发表时间:2010-01-29  
linliangyi2007 写道
zctya 写道
用的3.0及此分词器,在addDocument时报了一下java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z

请问是什么问题


java 接口的版本不对,会造成找不到抽象方法的异常。具体原因就多样化了,查查jar的实际引用版本吧,常常是IDE没有把正确的jar分布到lib的目录里,会有这个问题



嗯,这个问题解决了,本来是弄个3.2的,结果不知道怎么搞的,变成了3.16

想问下,为什么搜索单个字的时候,会搜索不到结果呢? 如何处理下呢?谢谢~!
0 请登录后投票
   发表时间:2010-01-29  
zctya 写道
linliangyi2007 写道
zctya 写道
用的3.0及此分词器,在addDocument时报了一下java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z

请问是什么问题


java 接口的版本不对,会造成找不到抽象方法的异常。具体原因就多样化了,查查jar的实际引用版本吧,常常是IDE没有把正确的jar分布到lib的目录里,会有这个问题



嗯,这个问题解决了,本来是弄个3.2的,结果不知道怎么搞的,变成了3.16

想问下,为什么搜索单个字的时候,会搜索不到结果呢? 如何处理下呢?谢谢~!


lucene的原理就是按切分的词来搜索,而不是按字搜索,除非你把所有的词都切成单个字,否则搜索不到是正常的。
0 请登录后投票
   发表时间:2010-02-26  
您好,请问我使用org.wltea.analyzer.dic.Dictionary.loadExtendStopWords方法后扩充的词汇存在在哪?我在stopword.dic中找不到。是没有存储吗?因为我看到org.wltea.analyzer.dic.Dictionary.loadExtendWords后会将词汇存储到IK的主词典中,所有有此疑问。
还有我用SSH,IKAnalyzer.cfg.xml和ext_stopword.dic的路径为config包中,在IKAnalyzer.cfg.xml中设置
<entry key="ext_stopwords">/config/ext_stopword.dic</entry>

,xml已经加载到了,但是停止词没用到。这是什么原因?
0 请登录后投票
   发表时间:2010-02-26   最后修改:2010-02-26
MultiArrow 写道
您好,请问我使用org.wltea.analyzer.dic.Dictionary.loadExtendStopWords方法后扩充的词汇存在在哪?我在stopword.dic中找不到。是没有存储吗?因为我看到org.wltea.analyzer.dic.Dictionary.loadExtendWords后会将词汇存储到IK的主词典中,所有有此疑问。
还有我用SSH,IKAnalyzer.cfg.xml和ext_stopword.dic的路径为config包中,在IKAnalyzer.cfg.xml中设置
<entry key="ext_stopwords">/config/ext_stopword.dic</entry>

,xml已经加载到了,但是停止词没用到。这是什么原因?


通过loadExtendStopWords方法后扩充的词没有存储在文件内。

文章中说的主词典是指内存中的词典对象,即,扩展词和原本词库内的词都会在内存中合并到相同的词库中。

IK的字典是单向加载模式,不会反向的存储到磁盘文件中,你可以通过配置,从文件中读取,也可以通过API动态添加。
0 请登录后投票
   发表时间:2010-02-26  
看了forfuture1978的文章,里面提到在建立索引的时候会先去除停词。
在IK中,搜索时是不是也把搜索条件中的符合停词的词给去掉?
如果是这样,那建立索引时去除停词这个动作不是多此一举了吗?
0 请登录后投票
   发表时间:2010-02-26  
MultiArrow 写道
看了forfuture1978的文章,里面提到在建立索引的时候会先去除停词。
在IK中,搜索时是不是也把搜索条件中的符合停词的词给去掉?
如果是这样,那建立索引时去除停词这个动作不是多此一举了吗?


实际上,不论在建立索引,还是输入搜索条件,都需要用到分词器,建立是会去除停词,搜索时也去除停词,两个是同一个过程啊。
0 请登录后投票
   发表时间:2010-02-26  
linliangyi2007 写道
MultiArrow 写道
看了forfuture1978的文章,里面提到在建立索引的时候会先去除停词。
在IK中,搜索时是不是也把搜索条件中的符合停词的词给去掉?
如果是这样,那建立索引时去除停词这个动作不是多此一举了吗?


实际上,不论在建立索引,还是输入搜索条件,都需要用到分词器,建立是会去除停词,搜索时也去除停词,两个是同一个过程啊。

写搜索的代码时,没有用到分词器,所以想歪了。
0 请登录后投票
   发表时间:2010-03-12  
1:请教下 我想用自己的扩展词库,比如说人名, 我在IKAnalyzer.cfg.xml
配置了<entry key="ext_dict">/mydic.dic;</entry>
并在mydic.dic里 写了人名字,但是索引的时候 却搜不到。这是啥原因呢?

不知道IKAnalyzer 的分词效果是啥样的。
2:
另外Lucene3.0之前的版本 都可以测试分词器分词 
TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(text));
for (Token token = new Token(); (token = tokenStream.next(token)) != null;) {
System.out.println(token);
}

但是Lucene3.0 的TokenStream却没有了next()方法,不知道您这个分词器 如何测试呢?
0 请登录后投票
   发表时间:2010-03-12  
配置路径啥的都没问题,您的那个停用词配置文件 可以用,但是用户扩展词库用不了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics