一、修改增加中文分词模块为 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修改如下:
[这里摘录修改的片段,修改增加部分为粗体]
...
<target name="runtime-desktop" depends="prepare-once, runtime-desktop-fast">
<echo message="Creating the jars ..." />
<fileset id="desktop-common-jars" dir="build/included-lib-classes/common">
<include name="org/apache/lucene/**"/>
<include name="org/apache/log4j/**"/>
<include name="org/apache/regexp/**"/>
<!-- Add by ping. -->
<include name="net/paoding/analysis/**"/>
<include name="paoding-*.properties"/>
<include name="org/apache/commons/**"/>
...
<target name="runtime-server" depends="prepare-once, runtime-server-fast, -web-temps">
<jar jarfile="build/runtime/crawler/${programname.file}-crawler.jar"
compress="false"
index="true">
<manifest>
<attribute name="Main-Class" value="net.sf.regain.crawler.Main"/>
</manifest>
<fileset dir="build/included-lib-classes/common">
<include name="org/apache/lucene/**"/>
<include name="org/apache/log4j/**"/>
<include name="org/apache/regexp/**"/>
<!-- Add by ping. -->
<include name="net/paoding/analysis/**"/>
<include name="paoding-*.properties"/>
<include name="org/apache/commons/**"/>
...
<mkdir dir="build/runtime/search/webapps"/>
<war destfile="build/runtime/search/webapps/${programname.file}.war"
webxml="web/server/web-inf/web.xml">
<classes dir="build/classes">
<exclude name="net/sf/regain/crawler/**"/>
<exclude name="net/sf/regain/ui/desktop/**"/>
<exclude name="net/sf/regain/util/sharedtag/simple/**"/>
<exclude name="net/sf/regain/util/ui/**"/>
</classes>
<lib dir="lib">
<include name="lucene-*.jar"/>
<include name="jakarta-regexp-*.jar"/>
<include name="log4j-*.jar"/>
<!--Add by ping.-->
<include name="paoding-*.jar"/>
<include name="commons-logging*.jar"/>
</lib>
...
<mkdir dir="${deploy-target.dir}/${programname.file}/WEB-INF/lib"/>
<copy todir="${deploy-target.dir}/${programname.file}/WEB-INF/lib">
<fileset dir="lib">
<include name="lucene-*.jar"/>
<include name="jakarta-regexp-*.jar"/>
<include name="log4j-*.jar"/>
<!--Add by ping.-->
<include name="paoding-*.jar"/>
<include name="commons-logging*.jar"/>
</fileset>
</copy>
二、修改查询结果片段长度
1.默认查询结果显示片段为100个字节,
个人认为比较短,可以修改为结果片段长度为300.
lucene\contrib\highlighter\src\java
org.apache.lucene.search.highlight
SimpleFragmenter.java
public class SimpleFragmenter implements Fragmenter
{
private static final int DEFAULT_FRAGMENT_SIZE =100*3;
定于查询结果片段的长度。默认为100字节,修改为300字节
三、另外,对查询结果页面进行稍微修改。
1.package net.sf.regain.search.results;
SingleSearchRusults.jsp
public void highlightHitDocument(int index)
resHighlSummary = highlighter.getBestFragments(tokenStream, text, 3,
" . . . . . . <br><span class=\"resultTag\">[Result]</span> ");
定于查询结果显示。
2.web\web\common
search.jsp
<search:list msgNoResults="<tr><td colspan='2'>{msg:noResultsFound}<br/><br/></td></tr>">
<tr><td colspan="2">
<search:hit_typeicon imgpath="img/ext"/> <search:hit_link/>
<span class="hitDetails">
(<search:msg key="relevance"/>: <search:hit_score/>)<br/>
<span class="resultTag">[Result]</span>
<search:hit_field field="summary"/><br/>
<search:hit_content/>
<search:hit_path after="<br/>" createLinks="true"/>
<search:hit_field field="mimetype"/>
<span class="hitInfo"><search:hit_url beautified="true"/> - <search:hit_size/></span><br/>
<br/></span>
</td></tr>
</search:list>
查询结果显示页面和显示数据域的定义。
3.增加显示样式
src\web\common
regain.css
.resultTag {
color: #0000FF;
font-weight: bold;
}
4.一点小修饰,获取文章内容的按钮默认是德文,翻译成英文表示。
src/net/sf/regain/search/sharedlib/hit/ContentTag.java
protected void printEndTag(PageRequest request, PageResponse response,
Document hit, int hitIndex)
throws RegainException {
String content = null;
content = hit.get("content");
if (content != null) {
String hitNumber = Integer.toString(hitIndex + 1);
response.print("<input type=\"button\" class=\"button\" onclick=\"return toggleMe('hit_" +
hitNumber + "')\" value=\"Click here Get " + hitNumber + " content\">");
property文件
词典库文件
编码问题
regain增加paoding中文分词以及server端版本设置
原文来自:http://monner.iteye.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();
//add by robin
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修改见原文地址
分享到:
相关推荐
**基于Lucene的搜索引擎Regain安装指南** Regain是一个基于Apache Lucene的全文搜索引擎,它提供了高级的搜索功能,能够帮助用户快速、准确地在大量数据中查找所需信息。Lucene是Java语言实现的一个开源信息检索库...
4. 用户可以通过Python的打包工具,如setuptools或pip,来安装和使用regain库。 在实际开发中,了解这些信息对于有效地利用regain库来构建和扩展分布式系统至关重要。同时,对于熟悉ZooKeeper和云原生架构的开发者...
在服务器部署方面,regain_v1.2.3_server可能提供了详尽的文档和配置工具,帮助管理员轻松安装、配置和管理服务。这包括设置数据库连接、调整索引参数、配置日志监控等方面。同时,安全性和稳定性也是重点,可能会有...
重新获得您的隐藏信息regain是在桌面或服务器上... 您可以在Web服务器上安装的服务器搜索。 它为网站或Intranet文件服务器提供搜索功能。 regain用Java编写,因此适用于所有Java兼容平台(包括Windows,Linux,Mac OS,
资源分类:Python库 所属语言:Python 资源全名:regain-0.2.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
文件夹选项、任务管理器、regedit 大多被 windows 中的病毒禁用。该程序可以带回您的文件夹选项、任务管理器、regedit(windows 注册表编辑器)搜索选项、运行选项、显示隐藏文件和文件夹等.. 选项
恢复考虑到潜在变量的影响,跨多个时间戳的正则化图形推断。...安装安装重新获得收益的最简单方法是使用pip pip install regain 或conda conda install -c fdtomasi regain 如果您想从源代码安装,或者
Regain是一个基于Jakarta Lucene的Java搜索引擎。 它提供了索引和搜索文件的多种格式(HTML,XML,doc(x),xls(x),ppt(x),oo,PDF,RTF,mp3,mp4,Java)。 TagLibrary使您可以轻松地将搜索结果集成到基于...
《To Regain the Nature of Goodness》是一篇对查尔斯·狄更斯作品《雾都孤儿》(Oliver Twist)的英文读后感。这篇读后感由上海市实验学校高三(1)班的顾竹屹撰写,深入剖析了这部反映18世纪英国社会悲剧的小说。 ...
Regain 是一个基于 Jakarta Lucene 的 Java 搜索引擎。 它为多种格式(HTML、XML、doc(x)、xls(x)、ppt(x)、oo、PDF、RTF、mp3、mp4、Java)提供索引和搜索文件。 TagLibrary 简化了在基于 JSP 的网页中集成搜索结果...
node 后端 /back-end 在 /back-end 目录下创建 config 文件夹。 在其下添加 database.js const data = { url:'database-host', //host user:'database-user', //user pwd:'database-pwd', //password ...
Le diagnostic de défaillances des ... Le regain d’intérêt manifesté par les différents secteurs industriels et par le monde de la recherche, démontre que ce domaine est un créneau très porteur.
When installing Cracklock, users... Basically, users who can no longer access a certain shareware software that they have been using for the past 30 days can process it using Cracklock and regain access.
- "regain the minerals it had lost"描述了土壤自然恢复的过程,这是农业生产中的生态平衡知识。 4. 词汇搭配: - suffer starvation: 遭受饥饿 - give the harvest of...to: 把...的收成给... - benefit from...
The stability of power systems refers to the property that allows them to remain in an operating state in equilibrium under normal operating conditions and to regain another state of equilibrium after...
Using Cisco Secure Unified Access Architecture and Cisco Identity Services Engine, you can secure and regain control of borderless networks in a Bring Your Own Device (BYOD) world. This book covers ...
* Restrict access sensibly and regain access to your database in case of loss of administrative user credentials * Part of Packt's Cookbook series: Each recipe is a carefully organized sequence of ...
DLL (Windows): After a dialog from the DLL was closed, the original window did not regain keyboard focus. Fixed. DLL: Added flash programming support for Toshiba TMPM3HLFDUG, TMPM3HLFYUG, TMPM3HLFZUG...