种瓜得瓜,种豆得豆;一份耕耘,一份收获

regain增加paoding中文分词以及server端版本设置

原文来自:http://monner.javaeye.com/blog/254804
———————————————————————-
补充:
用paoding中文分词,先建立词典

vi /etc/profile
export PAODING_DIC_HOME=/data/paoding/dic

将paoding的dic目录里的内容copy到 /data/paoding/dic
windows设置见手册

另外导入lucene/contrib/memory下的包lucene-memory到regain/lib中.再编译.

server版本中有个问题需要修改.如果出现乱码可尝试将
src/net/sf/regain/search/SearchToolkit.java
修改为下面的

queryString = query.toString().trim();
try {
queryString = new String(queryString.getBytes("iso-8859-1"),"UTF-8");
} catch (Exception e) {
}
request.setContextAttribute(SEARCH_QUERY_CONTEXT_ATTR_NAME, queryString);
}
return queryString;

——————————-
regain的服务器版本端配置关键修改点



file:///home/admin/domains/25q.net/

然后在

file:///home/admin/domains/25q.net/

这里两处路径都需要加.否则会导致 index empty的错误

原文部分内容:

一、修改增加中文分词模块为 Paoding-analysis

非常简单,只需要修改一个源码文件。

源代码文件(以下都用下划线表示):src\net\sf\regainRegainToolKit.java


import net.paoding.analysis.analyzer.PaodingAnalyzer;
import org.apache.lucene.analysis.cn.ChineseAnalyzer;

public static Analyzer createAnalyzer(String analyzerType,
String[] stopWordList, String[] exclusionList, String[] untokenizedFieldNames)
throws RegainException

if (analyzerType.equalsIgnoreCase("english")) {
analyzerClassName = StandardAnalyzer.class.getName();
} else if (analyzerType.equalsIgnoreCase("german")) {
analyzerClassName = GermanAnalyzer.class.getName();
} else if (analyzerType.equalsIgnoreCase("chinese")){
analyzerClassName = ChineseAnalyzer.class.getName();//Add by ping.
} else if (analyzerType.equalsIgnoreCase("paoding")){
analyzerClassName = PaodingAnalyzer.class.getName();//Add by ping.
}

源码修改只涉及以上一个文件,但是要完整编译和最终运成功,还需要其他修改。
主要包括:
1.修改ant的编译配置文件build.xml,
2.拷贝paoding-analysis.jar到lib目录。

build.xml修改见原文地址

admin @ 一月 2, 2010 at 1:21 上午

回复

TrackBack URL

Leave a reply