`

Regain增加中文Paoding分词模块及界面显示的修改笔记

阅读更多
Regain修改笔记
 
 
一、修改增加中文分词模块为 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"/>&nbsp;
              <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\">");
 
重新编译后,效果还不错呢!
 
  • 大小: 316.7 KB
分享到:
评论

相关推荐

    基于lucene的搜索引擎regain安装版

    **基于Lucene的搜索引擎Regain安装指南** Regain是一个基于Apache Lucene的全文搜索引擎,它提供了高级的搜索功能,能够帮助用户快速、准确地在大量数据中查找所需信息。Lucene是Java语言实现的一个开源信息检索库...

    搜索引擎regain_v1.2.3_server

    "regain_v1.2.3_server"是一个针对搜索引擎技术的特定版本,主要集中在服务器端的实现。在本文中,我们将深入探讨regain搜索引擎的工作原理、功能特性、更新至v1.2.3版本带来的改进以及如何在服务器环境中部署和使用...

    PyPI 官网下载 | regain-0.1.7.tar.gz

    标题中的"PyPI 官网下载 | regain-0.1.7.tar.gz"指的是Python Package Index(PyPI)上发布的名为"regain"的软件包的版本0.1.7,该版本被打包成tar.gz格式。PyPI是Python开发者发布和分享他们编写的开源软件的地方,...

    regain:在桌面或服务器上运行的搜索引擎,支持各种文件格式

    重新获得您的隐藏信息regain是在桌面或服务器上运行的搜索引擎,支持各种文件格式。重新获得什么? regain是一个类似于Google之类的网络搜索引擎的搜索引擎,区别在于您不搜索网络,而是搜索自己的文件和文档。 使用...

    Regain Power-开源

    文件夹选项、任务管理器、regedit 大多被 windows 中的病毒禁用。该程序可以带回您的文件夹选项、任务管理器、regedit(windows 注册表编辑器)搜索选项、运行选项、显示隐藏文件和文件夹等.. 选项

    Python库 | regain-0.2.2.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:regain-0.2.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Regain:一个基于Jakarta Lucene的Java搜索引擎-开源

    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》.doc

    总之,顾竹屹在《To Regain the Nature of Goodness》这篇读后感中,不仅仅剖析了《雾都孤儿》这部小说,更深层地探讨了善良的本质和重要性。他呼吁我们珍视并发扬自身的善良品质,因为它不仅能够帮助我们应对生活的...

    重获:REGAIN(规则图形推论)

    恢复考虑到潜在变量的影响,跨多个时间戳的正则化图形推断。...安装安装重新获得收益的最简单方法是使用pip pip install regain 或conda conda install -c fdtomasi regain 如果您想从源代码安装,或者

    regain-开源

    Regain 是一个基于 Jakarta Lucene 的 Java 搜索引擎。 它为多种格式(HTML、XML、doc(x)、xls(x)、ppt(x)、oo、PDF、RTF、mp3、mp4、Java)提供索引和搜索文件。 TagLibrary 简化了在基于 JSP 的网页中集成搜索结果...

    regain:koa2 + mysql + vue3

    node 后端 /back-end 在 /back-end 目录下创建 config 文件夹。 在其下添加 database.js const data = { url:'database-host', //host user:'database-user', //user pwd:'database-pwd', //password ...

    GMAT曼哈顿语法中文版.doc

    GMAT曼哈顿语法中文版.doc 本文档是GMAT曼哈顿语法中文版,涵盖语法、词汇和阅读理解三个方面的知识点。以下是对该文档的详细解释和知识点总结: 章节一:SC Basics 1. 控制时间:在60s~75s之间完成题目。 2. 做...

    英语四级考试文科词汇PPT课件.pptx

    - `find + 宾语 + 形容词/名词/现在分词/过去分词`,如 `find him a liar`(发现他是个骗子)、`find the lost wallet in the corner`(在角落里找到丢失的钱包)等。 15. **金融相关词汇**: - `stock` 代表...

    学生管理系统

    该系统通过一个直观的菜单界面为用户提供多种功能选项,包括新建文件、数据处理(查询、修改、删除)、各科平均成绩计算、排名功能、显示所有学生信息、统计数据、保存以及关于系统的介绍等。 #### 二、系统结构与...

    YacineNacer.rar_Alis_diagnostic

    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.

    操作系统选择题及其答案

    以下是对题目及答案的详细解析: 1. "操作系统的主要目标是" - 答案:d. All of the above(所有选项) 操作系统的首要目标包括能力进化(Ability to evolve)、便利性(Convenience)和效率(Efficiency)。随着...

    Cracklock 时限破解器

    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.

    DHS-16卤素水分测定仪操作规程.docx

    在运行或完成后,需要重复按Display显示键,屏幕将显示不同数据:水分含量(MOISTURE) 、固体量(SOLIDS) 、回潮率(REGAIN) 、干燥固体重量(GRAMS)及干燥曲线。 如果需要搅动样品,只需打开封盖,搅动样品,...

Global site tag (gtag.js) - Google Analytics