`
shingo7
  • 浏览: 19354 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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了...

 

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

 

2
0
分享到:
评论
3 楼 952222 2009-08-01  
请问一个问题,为什么我用IK还有paoding的时候,搜索“互联网”,“和服务”这类词语的时候,就会有
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


起 因

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.StringIndexOutOfBoundsException: String index out of range: -3
org.apache.nutch.searcher.FetchedSegments.getSummary(FetchedSegments.java:285)
org.apache.nutch.searcher.NutchBean.getSummary(NutchBean.java:325)
org.apache.jsp.searchs_jsp._jspService(searchs_jsp.java:292)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

这个错误呢?这类词语都是可以拆分成两个词的。如“互联网”拆成“互联”和“联网”
2 楼 shingo7 2008-11-03  
卡拉阿风 写道

prop key="compass.engine.analyzer.default.type 这里的default是默认的吧? 据说IK_CAnalyzer速度慢点。我也用Paoding的 LZ学习多久了?

呵呵,没多久呢,在搜索这一块我还是个新手,呵呵,还在慢慢摸索.
1 楼 卡拉阿风 2008-10-31  
prop key="compass.engine.analyzer.default.type
这里的default是默认的吧?
据说IK_CAnalyzer速度慢点。我也用Paoding的
LZ学习多久了?

相关推荐

    基于Compass2.2与Spring 结合建立索引的实例

    ### 基于Compass2.2与Spring结合建立索引的实例 #### 一、Compass简介 Compass是一个开源的.NET和Java框架,它为应用程序提供了完整的文本搜索功能。该框架支持多种搜索引擎(如Elasticsearch, Solr等),使得开发...

    Compass+ lucene 通用代码(脱离数据库)

    《Compass+Lucene:构建高效全文搜索引擎》 在信息技术高速发展的今天,数据量的爆炸式增长使得传统的数据库查询方式面临着挑战。此时,全文搜索引擎以其快速、高效的特性,成为了处理大量非结构化文本数据的首选...

    使用compass+lucene实现简单的全文检索功能

    Compass 是基于 Lucene 构建的一个高级搜索引擎框架,它简化了 Lucene 的使用,并且提供了更多的特性,如自动索引、ORM 集成(Object-Relational Mapping)以及对多种持久化技术的支持,如 JPA、Hibernate 和 ...

    Struts+Hibernate+spring+jpa+lucene+jbpm+compass配置文件

    Struts、Hibernate、Spring、JPA、Lucene、JBPM和Compass是Java开发中常用的一系列技术,它们各自在不同的领域发挥着重要作用。这里我们将深入探讨这些技术以及如何将它们整合在一起进行配置。 1. **Struts**:...

    Lucene+compass+spring+jdbc+庖丁的一个例子

    标题中的“Lucene+compass+spring+jdbc+庖丁的一个例子”揭示了这是一个关于整合多个技术来构建一个搜索系统的示例。在这个系统中,我们有以下几个关键组件: 1. **Lucene**: Apache Lucene 是一个高性能、全文本...

    完整compass工程+建库sql+学习资料

    Compass和Lucene是两个在Java世界中非常重要的搜索引擎框架,它们在处理文本检索和全文索引方面具有强大的功能。这个压缩包包含了一个完整的Compass工程,MySQL的建库SQL脚本,以及相关的学习资料,非常适合想要深入...

    compass+lucene

    在实际应用中,`compass+lucene`的组合使得开发者可以轻松地在Java应用中添加全文搜索功能,而无需深入了解搜索引擎的复杂细节。通过 Compass 的 ORM 集成,开发者可以直接在存储在数据库中的对象上执行全文搜索,这...

    compass2.1.4包+所用lucene包+中文分词器

    Compass 是一个基于 Lucene 的全文检索框架,它提供了一种高级的、面向对象的方式来管理和集成搜索引擎到你的应用程序中。在“compass2.1.4包”中,包含了 Compass 框架的版本 2.1.4,这个版本可能包含了性能优化、...

    Lucene+compass学习资料

    例如,使用Compass将数据库中的数据同步到Lucene索引中,然后通过Ajax实现前端与后端的无刷新通信,当用户在搜索框中输入关键词时,立即向服务器发送请求,服务器利用Lucene进行查询,并用Ajax返回结果,这样就能在...

    compass+ibatis+spring+struts2整合开发

    compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发

    struts2 + spring2.5 + hibernate 3.2 + lucene 2.4 + compass 2.0产品搜索

    struts2 + spring2.5 + hibernate 3.2 + lucene 2.4 + compass 2.0 包含所有jar包,按readme.txt导入并运行即可 开始不用分了................

    compass-2.1.2.jar'、lucene-analyzers-2.4.0.jar、 lucene-core-2.3.0.jar、 lucene-highlighter-2.4.0.jar、 struts2-core-2.0.9.jar、 struts2-spring-plugin-2.0.9.jar、 xwork-2.0.4.jar

    使用compass+lucene实现简单的全文检索功能 里面整合了spring2.5、hibernate3.2、struts2.0,是对数据库进行全文检索的一个非常好的demo的所有jar包组合! 对研究基于数据库检索的java开源搜索引擎的朋友有很大的...

    lucene 搜索引擎 compass

    Apache Lucene是一个高性能、全文本检索库,它提供了基础的索引和搜索功能,使得开发者能够轻松地在应用中集成高级搜索功能。而Compass则是一个基于Lucene的搜索引擎框架,它为Lucene提供了更高级别的抽象和更方便的...

    基于Lucene的搜索引擎框架Compass教程

    Compass是一个基于Lucene的高级搜索引擎框架,它为Java开发者提供了一种更加便捷的方式来构建和管理搜索引擎应用。 **一、Compass概述** Compass是一个开源项目,它将Lucene的功能封装起来,提供了一套面向对象的...

    compass_lucene_source

    通过深入研究"compass_lucene_source",开发者可以学习到如何结合Lucene的底层能力,利用Compass构建出功能完善的全文搜索引擎,同时还能掌握如何设计和优化搜索系统的各种技巧。这对于那些希望提升应用搜索功能的...

    SSH2+compass2.2搜索实例(完整工程)

    Compass是一个全文搜索引擎库,它是Lucene的包装器,使得在Java应用程序中集成搜索引擎变得简单。Compass2.2引入了对Spring的深度集成,可以无缝地与Hibernate配合工作,实现实时索引和检索。它使得在应用程序中添加...

    COMPASS+spring构建自己的搜索引擎.pdf

    标题提及的"COMPASS+spring构建自己的搜索引擎"是关于如何使用Compass搜索引擎框架与Spring框架集成,构建一个自定义的全文搜索引擎。Compass是一个开源的搜索引擎库,它提供了与ORM框架(如Hibernate)的集成,使得...

    [sass+compass+susy+源码实战]css设计师指南

    在本资源包中,"初识 sass compass框架" 部分将引导你了解如何安装和设置 Sass 和 Compass,以及如何利用它们来构建项目。你将学习到如何创建和编译 .scss 文件,如何导入 Compass 的模块,以及如何自定义 Compass ...

    lucene.jar架包

    Lucene.jar 架包是构建全文检索应用的基础,结合其他扩展库(如 Compass 和 Paoding Analysis),开发者可以构建出强大且高效的搜索系统。无论是在小型项目还是大型企业级应用中,Lucene 都是一个不可或缺的工具。...

Global site tag (gtag.js) - Google Analytics