基于Lucene搜索引擎的研究与改进.docVIP

  • 2
  • 0
  • 约6.27千字
  • 约 10页
  • 2016-11-29 发布于重庆
  • 举报
基于Lucene搜索引擎的研究与改进

基于 Lucene 搜索引擎的研究与改进 摘要 Lucene 是目前已经几年,最受欢迎的免费 Java 的全文检索库。首先,本文分析了珠光体系结构、 索引机制、 搜索机制;其次,它研究排序技术和如何调整索引的性能;最后,文章提出了新的检索排序算法。 关键字:索引;搜索;条款;因子;maxMergeDocs;满意程度;;新的算法 一、引言 Lucene 是优秀的全文搜索引擎工具软件包和一个成熟的、 免费的、 开源的项目,在Java 中实现。然而,它不是一个完整的全文搜索引擎,而是全文搜索引擎的体系结构。Lucene 提供完整的搜索引擎,完整的索引引擎,部分文本分析引擎 (两种西方语言:英语和德语)[1]。它是项目 Apache 雅加达家庭成员。本文的结构如下:第二部分我们分析 Lucene 系统结构;第三部分研究 Lucene 运行机制 (索引和搜索);第四部分讨论如何调整索引的性能;第五部分我们对分类技术的研究,提出新的检索排序算法。在第六部分我们进行有关的新算法的可行性分析;最后在第七部分得出结论。 二、LUCENE 系统结构 作为一个优秀的全文搜索引擎,Lucene 系统结构具有强烈的面向对象特征。首先,Lucene 系统定义一个索引文档格式已无关平台;第二,该系统的核心部件旨在抽象类,和混凝土平台实现设计用来抽象类实现;最后,它穿过层面向对象处理,实现一种低耦合,高效率,便于二次开发的搜索引擎系统。Lucene 体系结构如图 1 所示: 图1 Lucene索引结构 从图 1,我们可以看到,Lucene 系统由3个主要部分,即基本的封装结构、 索引核心、 外部接口组成。索引核心也是系统的关键所在。Lucene 系统所有源代码都划分成 7个模块 (在Java包来表示),并且每包完成特定的功能。其核心类软件包是组织 Apache.Lucene.analysis,org.apache lucene.index,org.apache lucene.search。每个包的功能,如表1: 表1Lucene各包功能 包 功能 org.apache lucene.search 搜索界面 org.apache lucene.index 索引接口 org. apache.lucene.analysis 语言分析器 org. apache.lucene.queryParser 查询分析器 org. apache.lucene.document 文件存储器 org. apache.lucene.store 底层I/O存储结构 org. apache.lucene.util 一些公共数据结构 三、LUCENE 运行机制 Lucene 主要包括两个功能: ? 建立索引数据库和索引纯文本; ? 根据用户的查询,搜索索引已经建立的数据库。 A.索引机制 分度机构是 Lucene 系统的核心部分。似乎可以简单地完成此操作的过程中哪些索引文档可能只能调用 Lucene API 的几种方法。然而,它实际上隐藏巧妙而复杂的索引过程背后的简单过程。图 2 显示了索引进程: 图 2 索引进程 从图 2,我们可能会看到,索引过程分为预处理、分析文本、索引存储三个主要的阶段。 1) 预处理 因为 Lucene 只可以纯文本文档编制索引,索引数据之前,索引的数据必须转换成文本字符流是 Lucene 可以处理的格式。上述过程称为预处理,即预处理用于从非文本文档中提取文本信息。在那之后,提取出来的数据用于创建卢塞恩的文档和相应的字段。 2) 分析文本 创建字段的文档之后, Lucene 不应直接进行索引操作,而是分析数据。分析,在 Lucene 中,是指过程的字段文本转换其最基本的索引表示形式、条款。这些术语用来确定文件的匹配,查询搜索期间。分析仪通过执行任意数量的操作上,可将文本包括分词、 丢弃标点、从用小写字母的字符移除口音(也称为正常化),删除常用词、 减词到根窗体 (词干),或改变词的基本形式 (归类) 成。这一过程也称为标记,和大块的文本从文本流中救出被称为令牌。令牌,结合其相关联的字段的名称,是术语。 3) 索引存储 后建立条件。Lucene 将调用达到多少的 addDocument (文档) 方法,并将数据存储到索引数据库倒排的索引的数据结构。 索引的代码的示例如下所示: public class IndexWeb { String[] urls={“URL1”, 揢RL2攠; String[] contents={搘eb1?搘eb2攠; String indexpath; //index path; public void setup() throws IOException{ //index storing; index

文档评论(0)

1亿VIP精品文档

相关文档