compass2.02 + paoding2.04 + Lucene2.2 构建全文索引的问题

今天接到客户新的需求,要求在分词上接近,现实更人性化,于是我将原先来分词器IK_CAnalyzer 换成最新的 PaodingAnalyzer,  不过.....这其中的曲折太多了...

 

首先,我下载了最新的paoding包 paoding-analysis-2.0.4-alpha2,将jar包导入classpath,将词典导入到classpath我设置好paoding.dic.home

并将compass的sping配置做了修改,如下

修改前:

<prop key="compass.engine.analyzer.default.type">org.mira.lucene.analysis.IK_CAnalyzer</prop>

修改后:

<prop key="compass.engine.analyzer.default.type">net.paoding.analysis.analyzer.PaodingAnalyzer</prop>

 

启动,报错如下

java.lang.VerifyError: Cannot inherit from final class 
        at java.lang.ClassLoader.defineClass1(Native Method) 
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620) 
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 
        at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1412­) 
        at com.caucho.loader.DynamicClassLoader.findClassImpl(DynamicClassLoader.java:­1282) 
        at com.caucho.loader.DynamicClassLoader.loadClassImpl(DynamicClassLoader.java:­1184) 
        at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1128­) 
        at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1113­) 
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 
        at net.paoding.analysis.analyzer.impl.MostWordsTokenCollector.collect(MostWord­sTokenCollector.java:41) 
        at net.paoding.analysis.analyzer.PaodingTokenizer.collect(PaodingTokenizer.jav­a:146) 
        at net.paoding.analysis.knife.CombinatoricsKnife.doCollect(CombinatoricsKnife.­java:258) 
        at net.paoding.analysis.knife.CombinatoricsKnife.collectIfNotNoise(Combinatori­csKnife.java:227) 


 

意思是说我继承了一个final类,这个final类是哪个类呢,是 lucene-core.jar下面的org.apache.lucene.org.apache.lucene.analysis.Token类,这个类被声明为final,但paoding分词会继承这个类,怎么办呢,我查看了下载的paoding-analysis-2.0.4-alpha2包,里面的lucene jar包是2.2版本的,于是我将我工程的lucene版本升至2.2.

 

启动,又报错,如下

java.lang.NoSuchMethodError: org/apache/lucene/document/Document.add(Lorg/apache/lucene/document/Field;)V

找不到方法,Lucene从2.0版本后Document增加Field时采用的是new Field(...)方法,而我的compass.jar是1.0版本的,于是我又去下了个最新的compass.jar 2.02版本的.

 

启动,又报错

找不到 org.compass.spring.device.hibernate.SpringHibernate3GpsDevice

看了一下jar包里的类,这个类改成org.compass.spring.device.hibernate.dep.SpringHibernate3GpsDevice了...

 

再次启动后终于正常了...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值