Atlassian Confluence 我覺(jué)得是個(gè)適合用來(lái)做項目開(kāi)發(fā)時(shí)的wiki工具,當然它是商業(yè)的,如果你是開(kāi)源項目,可以申請一個(gè)開(kāi)源的license,用起來(lái)就是爽啊.
不過(guò)原版的程序對中文搜索可是不行啊,它的搜索用的是lucene 1.4, 也就是說(shuō)lucene的中文搜索沒(méi)有被利用上(當然lucene包里缺省沒(méi)有中文的,而且confluence也沒(méi)有調用相關(guān)的包,對比JIra,還是有點(diǎn)問(wèn)題,當然JIra至少可以配置,隨便也沒(méi)有中文的)
通過(guò)研究,lucene可以用CJKAnalyzer 來(lái)做中文搜索,雖然有著(zhù)這樣那樣的缺點(diǎn),畢竟可以用(暫時(shí)不討論這個(gè)分詞的問(wèn)題,可以用就行了)
搜索confluence的相關(guān)文件,發(fā)現有個(gè)lucene.cfg.xml,里面調用了一個(gè)factory類(lèi): bucket.search.lucene.analyzer.DefaultLuceneAnalyzerFactory
另外indexingSubsystemContext.xml 里面也調用了這個(gè)類(lèi)
恩,自己寫(xiě)個(gè)類(lèi)替換掉這個(gè)類(lèi),或者改改配置文件就可以搞定了.
打開(kāi)eclipse,建立一個(gè)新的項目,加入lucene的jar包,加入atlassian-bucket-0.6.9.jar
新建一個(gè)類(lèi)來(lái)替代原來(lái)的類(lèi),例如 ScudLuceneAnalyzerFactory
代碼如下:
package org.apache.lucene.analysis;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import bucket.search.lucene.analyzer.LuceneAnalyzerFactory;
public class ScudLuceneAnalyzerFactory implements LuceneAnalyzerFactory
{
public ScudLuceneAnalyzerFactory()
{
}
public Analyzer createAnalyzer()
{
return new CJKAnalyzer();
}
}
編譯,打成一個(gè)jar包,放到confluence的WEB-INF/lib目錄下,修改上面提到的配置文件中的factory類(lèi)為你的類(lèi).
重啟tomcat,重建索引, ok,可以搜索中文了(當然英文也沒(méi)問(wèn)題)