有關jive論壇搜尋中文化的支援詳解!

來源:互聯網
上載者:User
詳解|中文
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論壇完全支援中文化的搜尋了。


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。