Jive笔记2----关于Jive2中的中文搜索

原创 2003年05月30日 15:00:00
Jive虽然构架不错,可是在中文处理上,实在可以算是垃圾。Lucene也是如此。最新版的Lucene1.2RC2中,queryParser类竟然只能处理A-Z|a-z|0-9的搜索。如果输入了中文,就给你扔出一个“Lexial parse Error”的错误。而且,E文中的Keyword是根据空格区分,这不适用于中文,所以一般采用基于字典的断词或者OverLapped断词。了解了上面的情况,我们就可以开始修改Lucene以实现中文搜索了。

(1)修改queryParser.jj,修改里边的词法定义,以适应Unicode双字节。QueryParser是由JavaCC生成的,建议了解一下JavaCC的语法,和EBNF概念相似。

(2)编写一个自己的Analyzer和Tokenizer。这里我从Lucene的Mail List中搞到了一个ChineseTokenizer.java,自己根据StandardAnalyzer.java写了一个ChineseAnalyzer.java。我们将用这个分析器用Overlapped方式切割一个完整的中文语句。

(3)修改Jive2中的dbQuery.java和SearchManager.java,
将imoprt com.lucene.*...改成import org.apache.lucene.*...
将里边的StandardAnalyzer改成ChineseAnalyzer

(4)编译,启动Jive,Rebuild index.现在,你的Jive2就能支持中文搜索了

注意:
Jive和AppServer必须在中文环境下运行。比如中文的NT/2000或者在Unix/Linux下边设置export LC_ALL=zh_CN.
同时,Global.jsp中加上request.setCharacterEncoding("gb2312");
分别给相关的页面加上contentType="text/html;charset=gb2312".这样可以不改动应付绝大多数AppServer,包括垃圾Tomcat4.0.1。
还有,修改dbURL为jdbc:mysql://localhost/jive2?useUnicode=true&characterEncoding=gb2312
附:
修改的
QueryParser.jjzh
/ChineseAnalyzer.java
zh/ChineseTokenizer.java
三个文件的Zip包

我是凭着记忆写的。讲得很模糊,也许老手不屑一顾,新手死活看不懂。对不住了,我的表达能力很差的。

Good Luck!

 

jive中的设计模式

Jive 中的设计模式 (Design Pattern)关键字: Jive, Design Pattern.时间: 2001-4-1摘要:Jive 是一个开放源码的论坛项目, 也就是我们所常见的 BB...
  • arielxp
  • arielxp
  • 2004年09月17日 08:01
  • 1829

bbs源码分析 之 jive中的设计模式

(来源:http://www.cn.ibm.com/) 摘要:Jive 是一个开放源码的论坛项目, 也就是我们所常见的 BBS, 采用了 SUN 公司的JSP 技术, 相比起 j2ee 这个庞大的体系...
  • swifth
  • swifth
  • 2006年11月19日 18:04
  • 1348

Jive 源代码探索

 Jive 源代码探索jive源代码的探索一直是很多朋友所在从事的,虽然有很多人对jive本身也提出了不同的批评意见,但是个人认为学习jive的源代码是走向java编程成熟的一条捷径,由于本人水平有限...
  • GFDVAn
  • GFDVAn
  • 2004年11月12日 16:29
  • 1695

Jive论坛简介

学习Jive源程序,可以更好的理解和应用设计模式,学习Java必须读懂两套源代码,第一个就是Jive 第二个是Sun的宠物店Pet Store.Jive论坛的优点是由于采用缓冲机制,可以承受巨大访问量...
  • smlweb
  • smlweb
  • 2005年01月07日 12:03
  • 5633

Jive学习_1

    Jive,相信学习java的人类都不会陌生,最起码是有所耳闻的。有句话最能形容Jive的影响力:面向对象和设计陌生是Java的内功,而Jive无疑是九阴真经。    下面就简单介绍一下Jive...
  • tuoxie007
  • tuoxie007
  • 2008年04月07日 01:34
  • 250

【好程序员笔记分享】——java中关于异常的知识点

android培训------我的java笔记,期待与您交流! 关于java中异常的知识点也学习了好久了,今天依旧把前段时间学习的异常的知识点整理一下. 好了,开始上笔记: 一:java中异常是...
  • u012960536
  • u012960536
  • 2015年05月11日 22:44
  • 409

JiveForumsPro4

 JiveForumsPro4             在读webwork文的时候,看到了,JiveForumsPro4,也就从网上找一找,也从官方上找了一些资料,       还不错吧,也是一个开源...
  • dingdangxiaoma
  • dingdangxiaoma
  • 2007年12月21日 13:54
  • 503

Jive之代理模式

public abstract class ForumFactory {    private static Object initLock = new Object();    private st...
  • philip_123456
  • philip_123456
  • 2009年09月14日 14:42
  • 574

Jive笔记7 -- Jive的硬伤

Jive笔记7 -- Jive的硬伤(1)Jive2.x权限颗粒度太粗,只是细分到Forum,所以其API无法完成类似 加密贴/需要回复才能看见 这样的功能。当然,可以通过属性操作,修补jsp来实现,...
  • ChinaOk
  • ChinaOk
  • 2003年05月30日 14:54
  • 1129

bbs源码分析 之 jive源码研究

前言 整体结构概叙 AbstractFactory模式和可扩展性 Proxy模式和权限控制 Decorator模式和过滤器 Iterator模式和论坛...
  • swifth
  • swifth
  • 2006年11月19日 18:06
  • 2166
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Jive笔记2----关于Jive2中的中文搜索
举报原因:
原因补充:

(最多只允许输入30个字)