论坛首页 Java企业应用论坛

发布IK Analyzer 3.0 中文分词器

浏览 64761 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-10-14  
linliangyi2007 写道
vincentwah 写道
linliangyi2007 写道
nvgui 写道
rongxh7 写道
linliangyi2007 写道
sunjun 写道
new IKAnalyzer();
jdk5.0 jdk6.0下都报一个错

java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Exception in thread "main"


你是不是用的是Eclipse里面的jdk版本不多啊。别急,排查一下系统环境吧,包括你是不是装了oracle之后,默认jdk的路径被改了。。。。
从错误上看,就是版本不支持造成的


我也遇到同样的问题.我是在Eclipse里做的,后来发现用的是JDK5,改成JDK6,重编译一下,就行了!



只支持jdk6????


不是只支持jdk6,是IKAnalyzer.jar用jdk6编译的,如果你使用5的话,需要自己下载源码编译。



哪里可以下载到3.0的源代码? SVN的地址是什么?


http://ik-analyzer.googlecode.com/svn/trunk/


请教一个问题,比如我对一个字符串 "硬盘驱动器" 做索引了以后, 搜索 "硬" 或者 "盘" 都不能搜索到,但是如果搜索"硬盘"就可以,这是什么问题呢?
0 请登录后投票
   发表时间:2009-10-14   最后修改:2009-11-05
引用
请教一个问题,比如我对一个字符串 "硬盘驱动器" 做索引了以后, 搜索 "硬" 或者 "盘" 都不能搜索到,但是如果搜索"硬盘"就可以,这是什么问题呢?


lucene是按照分词切分的结果进行完整匹配查询的, "硬盘驱动器"被切分成“硬盘”“驱动”“驱动器”,但没有“硬" 和 "盘",(那样是单字切分),因此搜索不到,这个是lucene的基础概念,切记。

0 请登录后投票
   发表时间:2009-11-05  
太棒了,请问有没有和nutch做集成的说明啊?
正在用nutch构建搜索引擎,还是菜鸟,希望能把中文分词先跑起来。
0 请登录后投票
   发表时间:2009-11-15  
我用demo中的例子
String text = "IK Analyzer是一个结合词典分词和文法分词的中文分词开源工具包。它使用了全新的正向迭代最细粒度切分算法。";

搜索
String keyword = "中文字典";

怎么没有命中?
0 请登录后投票
   发表时间:2009-11-15  
roky 写道
我用demo中的例子
String text = "IK Analyzer是一个结合词典分词和文法分词的中文分词开源工具包。它使用了全新的正向迭代最细粒度切分算法。";

搜索
String keyword = "中文字典";

怎么没有命中?


因为这句话中根本没有“字典”这个词啊,改成“词典”就对了
0 请登录后投票
   发表时间:2009-11-15  
roky 写道


我刚才试了下,中文 字典中间有空格就可以搜索的到,是不是解析的时候当成了两个关键字,因为刚接触这个,还没有来得及看其中的原理。
如果按照我刚才说的或的关系,确实会搜索一些不必要的信息。
但是有时候我确实想要搜索中文字典的时候符合中文字典,中文和字典的只要有一个能满足的就能够搜索的到
我在google上也试了下中文字典,就是我刚才说的或的关系


实际上对于Lucene而言,你可以使用标准的QueryParer来解析关键字,或者自己组织搜索逻辑。google的搜索逻辑要复杂多了,不是简单的OR或者AND。关键是要看你希望实现的应用的场景。
0 请登录后投票
   发表时间:2009-12-23  
怎么不行啊,楼主

IndexWriter.MaxFieldLength.LIMITED  , Field.Index.ANALYZED 和 isearcher.search(query , 5); 报错啊


我将IKAnalyzer3.0GA.jar部署于项目的lib目录中;IKAnalyzer.cfg.xml放到了src根下

为什么?
0 请登录后投票
   发表时间:2009-12-23   最后修改:2009-12-23
引用

怎么不行啊,楼主

IndexWriter.MaxFieldLength.LIMITED  , Field.Index.ANALYZED 和 isearcher.search(query , 5); 报错啊


我将IKAnalyzer3.0GA.jar部署于项目的lib目录中;IKAnalyzer.cfg.xml放到了src根下

为什么?


首先你用的是什么版本的Lucene,其次,IKAnalyzer的版本是多少?IK for lucene2.x的最新版是3.1.6GA,for Lucene3.0的是3.2statble
0 请登录后投票
   发表时间:2009-12-23  
谢了,楼主,lucene版本问题,我开始用的2.2的,换个2.9的就行了

我还问下,lucene和IKAnalyzer的版本太多了,到底 他们的哪个版本最好,稳定些
0 请登录后投票
   发表时间:2009-12-23  
你可以是用IK Analyzer 3.2.0stable 对 Lucene2.9以上版本
0 请登录后投票
论坛首页 Java企业应用版

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