Atlassian Confluence 的中文搜索问题的解决

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Atlassian Confluence 我觉得是个适合用来做项目开发时的wiki工具,当然它是商业的,如果你是开源项目,可以申请一个开源的license,用起来就是爽啊.

不过原版的程序对中文搜索可是不行啊,它的搜索用的是lucene 1.4, 也就是说lucene的中文搜索没有被利用上(当然lucene包里缺省没有中文的,而且confluence也没有调用相关的包,对比JIra,还是有点问题,当然JIra至少可以配置,随便也没有中文的)

通过研究,lucene可以用CJKAnalyzer 来做中文搜索,虽然有着这样那样的缺点,毕竟可以用(暂时不讨论这个分词的问题,可以用就行了)

搜索confluence的相关文件,发现有个lucene.cfg.xml,里面调用了一个factory类: bucket.search.lucene.analyzer.DefaultLuceneAnalyzerFactory

另外indexingSubsystemContext.xml 里面也调用了这个类

恩,自己写个类替换掉这个类,或者改改配置文件就可以搞定了.

打开eclipse,建立一个新的项目,加入lucene的jar包,加入atlassian-bucket-0.6.9.jar

新建一个类来替代原来的类,例如 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();

}

}

编译,打成一个jar包,放到confluence的WEB-INF/lib目录下,修改上面提到的配置文件中的factory类为你的类.

重启tomcat,重建索引, ok,可以搜索中文了(当然英文也没问题)

---说得太详细了...这样不好 嘿嘿

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航