快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

有关jive论坛搜索中文化的支持详解!


Jive的搜索借用了apche提供的lucene搜索引擎。lucene是一个纯Java的高性能的全文搜索引擎,你可以到apache的网站找到lucene的更多信息:http://jakarta.apache.org/lucene/docs/index.html

但在Jive使用的lucene包中,并不支持中文搜索,本站的系统也是构建在Jive之上进行扩展,中文搜索问题由JR治理系统主要开发人员之一cherami解决。很多关注Jive的朋友都来信向我们索取Jive中文搜索问题的解决方式,我在这儿把我们的解决方式整理出来,希望能够给您提供帮助。1. 下载lucene中文搜索支持包将lucene_cn.jar放到您的lib目录下。

2:修改您的DbSearchManager.java在com.jivesoftware.forum.database.DbSearchManager.java中,首先导入lucene中文包:

import org.apache.lucene.analysis.cn.*;

在DbSearchManager.java中找到如下代码:

    /**     * The analyzer governs how words are tokenized. The standard anaylyzer     * does a decent job in most cases, but could be replaced under certain     * circumstances. We make the analyzer protected so that the DbQuery class     * can also reference it (indexing and searching should use the same     * analyzer).     */    protected static Analyzer analyzer = new StandardAnalyzer();

替换为:

    protected static Analyzer analyzer = new ChineseAnalyzer();

3. 重启Jive,现在你的Jive即支持中文搜索了。

4. 其它问题

要使用中文搜索,您的搜索的jsp的页面也需要使用GB2312的编码方法:<%@ page contentType="text/html; charset=GB2312" %>在我们的实现中,还碰到一个问题。就是在搜索时,假如直接在search.jsp页面中使用可以正常,但假如是从另外一个页面的搜索框中跳转到search.jsp页面,则搜索输入框中的所有的中文字符都变成“?”了。这个问题是和平台有关的,引起原因很复杂。我的解决方式是在search.jsp中得到查询串时,可以参考使用:

    java.net.URLEncoder.encode(queryText,"GB2312");

5:最后总结:     对于中文搜索还需要修改两个jsp页面:search.jsp以及post.jsp将其中的:java.net.URLEncoder.encode(queryText)、URLEncoder.encode(url.toString())、java.net.URLEncoder.encode(postLink.toString())、URLEncoder.encode(name)、URLEncoder.encode(email)都在其encode()里面加入,"GBK"即可使你的jivc论坛完全支持中文化的搜索了。




返回类别: 教程
上一教程: java JDBC 提高程序可移植性
下一教程: 选择合适的java脚本语言

您可以阅读与"有关jive论坛搜索中文化的支持详解!"相关的教程:
· 在Unix/Linux上令(java)JVM支持中文输出
· JAVA中文问题详解
· Java中文问题详解,底层编码解剖
· 让Hibern8IDE支持中文(2.1.2)
· JDK/JRE5.0中对于IPv6的支持-解读JDK5.0对IPv6网络编程的支持
    微笑服务 优质保证 索取样品