教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 小学教育 >

全文检索及其在公文处理系统中的应用(2)

来源:网络收集 时间:2026-09-09
导读: 1.2课题目前研究情况及存在问题 目前有一些成熟的搜索引擎可以使用,但是都是用于商业,一般不公开源代码,学习起来比较困难,所以一些开源的项目成为设计时的首选,经过对搜索技术的研究,在Apache上发现了一个JAV

1.2课题目前研究情况及存在问题

目前有一些成熟的搜索引擎可以使用,但是都是用于商业,一般不公开源代码,学习起来比较困难,所以一些开源的项目成为设计时的首选,经过对搜索技术的研究,在Apache上发现了一个JAVA实现的用于搜索的开源项目LUCENE,LUCENE目前是公认的最好的搜索方面的开源项目之一,现在LUCENE已经成功的被移植到C,Perl、Python、C++、.NET及Ruby版本,所以其扩展性比较好,可以适用于大多数的平台,所以是开发站内搜索引擎的最理想的技术,但是目前存在若干问题:

1、LUCENE默认是不支持中文搜索的,所以要通过扩展其API使其支持中文搜索以及实现基本的中文分词。

2、由于公司项目的具体需求,以后将会遇到多条件的搜索,以及搜索SQLSERVER数据库和联合多个目录进行的搜索问题。

3、出于系统的某些信息的保密性,要限制某些信息被搜索到,要考虑如何保护文件的私密性。

论文示例

1.3论文组织结构

第2章 介绍全文检索系统与LUCENE。

第3章 介绍LUCENE系统结构。

第4章 介绍本系统的设计与实现。

第5章 检索结果分析。

第6章 介绍系统开发过程应用到的几点关键技术。

总结部分介绍整个开发过程中的体会与认识,并指出目前系统中的不足和改进方向。 本文主要从基于LUCENE的全文检索入题,阐述了全文检索的工作原理,延续到全文检索在公文处理系统中的设计与实现,最后总结出全文检索的效率与在公文处理系统中的应用效果。

论文示例

2.全文检索与LUCENE

2.1全文检索与全文检索简介

全文检索[1]是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

全文检索的方法主要分为按字检索和按词检索两种。按字检索是指对于文章中的每一个字都建立索引,检索时将词分解为字的组合。对于各种不同的语言而言,字有不同的含义,比如英文中字与词实际上是合一的,而中文中字与词有很大分别。按词检索指对文章中的词,即语义单位建立索引,检索时按词检索,并且可以处理同义项等。英文等西方文字由于按照空白切分词,因此实现上与按字处理类似,添加同义处理也很容易。中文等东方文字则需要切分字词,以达到按词索引的目的,关于这方面的问题,是当前全文检索技术尤其是中文全文检索技术中的难点,在此不做详述。

全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统。一般来说,全文检索需要具备建立索引和提供查询的基本功能,此外现代的全文检索系统还需要具有方便的用户接口、面向WWW的开发接口、二次应用开发接口等等。功能上,全文检索系统核心具有建立索引、处理查询返回结果集、增加索引、优化索引结构等等功能,外围则由各种不同应用具有的功能组成。结构上,全文检索系统核心具有索引引擎、查询引擎、文本分析引擎、对外接口等等,加上各种外围应用系统等等共同构成了全文检索系统。图1.1展示了上述全文检索系统的结构与功能。

在1.1图中,我们看到:全文检索系统中最为关键的部分是全文检索引擎,各种应用程序都需要建立在这个引擎之上。一个全文检索应用的优异程度,根本上由全文检索引擎来决定。因此提升全文检索引擎的效率即是我们提升全文检索应用的根本。另一个方面,一个优异的全文检索引擎,在做到效率优化的同时,还需要具有开放的体系结构,以方便程序员对整个系统进行优化改造,或者是添加原有系统没有的功能。比如在当今多语言处理的环境下,有时需要给全文检索系统添加处理某种语言或者文本格式的功能,比如在英文系统中添加中文处理功能,在纯文本系统中添加XML或者HTML格式的文本处理功能,系统的开放性和扩充性就十分的重要。

论文示例

2.2全文检索系统与数据库比较

全文检索的实现机制:LUCENE的API接口设计的比较通用,输入输出结构都很像数据库的表==>记录==>字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到LUCENE的存储结构/接口中。总体上看:可以先把LUCENE当成一个支持全文索引的数据库系统。如表2.1比较一下LUCENE和数据库:

全文检索 ≠ like "%keyword%"。

通常比较厚的书籍后面常常附关键词索引表(如:北京:12, 34页,上海:3,77页……),它能够帮助读者比较快地找到相关内容的页码。而数据库索引能够大大提高查询的速度原理也是一样,想像一下通过书后面的索引查找的速度要比一页一页地翻内容高多少倍……而索引之所以效率高,另外一个原因是它是排好序的。对于检索系统来说核心是一个排序问题。

由于数据库索引不是为全文索引设计的,因此,使用like "%keyword%"时,数据库索引是不起作用的,在使用like查询时,搜索过程又变成类似于一页页翻书的遍历过程了,所以对于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。如果是需要对多个关键词进行模糊匹配:like"%keyword1%" and like "%keyword2%" ...其效率也

论文示例

就可想而知了。

表2.1 LUCENE和数据库结构的比较

所以建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储关键词==>文章映射关系,利用这样的映射关系索引:[关键词==>出现关键词的文章编号,出现次数(甚至包括位置:起始偏移量,结束偏移量),出现频率],检索过程就是把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程。从而大大提高了多关键词查询的效率,所以,全文检索问题归结到最后是一个排序问题。

由此可以看出模糊查询相对数据库的精确查询是一个非常不确定的问题,这也是大部分数据库对全文检索支持有限的原因。LUCENE最核心的特征是通过特殊的索引结构实现了传统数据库不擅长的全文索引机制,并提供了扩展接口,以方便针对不同应用的定制。可以通过一下表2.2与表2.3对比LUCENE与数据库的模糊查询:

论文示例

全文检索和数据库应用最大的不同在于:让最相关的头100条结果满足98%以上用户的需求。

表2.2 LUCENE和数据库功能的比较

LUCENE的创新之处:

大部分的搜索(数据库)引擎都是用B树结构来维护索引,索引的更新会导致大量的IO操作,LUCENE在实现中,对此稍微有所改进:不是维护一个索引文件,而是在扩展索引的时候不断创建新的索引文件,然后定期的把这些新的小索引文件合并到原先的大索引中(针对不同的更新策略,批次的大小可以调整),这样在不影响检索的效率的前提下,提高了索引的效率。

2.3 LUCENE简介

LUCENE不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

论文示例

LUCENE的作者: Doug Cutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。他贡献出的LUCENE的目标是为各种中小型应 …… 此处隐藏:3053字,全部文档内容请下载后查看。喜欢就下载吧 ……

全文检索及其在公文处理系统中的应用(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/43585.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)