- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈基于LUCENE多媒体文件检索系统设计
浅谈基于LUCENE多媒体文件检索系统设计
摘 要:本文通过研究对Lucene框架及核心算法进行分析研究的基础上,通过插件的机制抽取多媒体文件中的标示性文本信息,利用Lucene对标示性文本进行索引构建及检索,在.NET平台及C#语言开发环境下设计并完成了一个多媒体文件的检索系统。
关键词:多媒体文件 检索系统 搜索引擎 Lucene
计算机互联网技术的飞速发展,使得网页以及各种文本数字信息急剧增长,想要在海量的数据中便捷、迅速地搜索到所需要的信息将变得越来越困难。现在常用的搜索引擎软件主要用信息检索技术来解决搜索的问题。同时,随着多媒体技术的发展,大量的信息主要以非文本形式的多媒体文件形式存在。对于如何有效地检索这些庞大数量的多媒体文件具有重要的应用价值。
搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
一、lucene简介
Lucene是Apache软件基金会Jakarta项目组的一个子项目,也是一个开放源代码的搜索引擎工具包。它不是一个完整的搜索引擎,而是一个全文索引工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能,提供完整的查询和索引及部分文本分析功能。
初使用Lucene的使用者常错误地把它认为是一个可以马上使用的应用程序,即一个文件检索程序,或者是一个Web网络爬虫,以及一个Web站点搜索引擎[1],然而这些都不是它的实质。Lucene实际上是一个开发工具包的软件库,而非具备完整特性的搜索应用程序。纵然使得它只关注于自身的索引和搜索技术,并且非常好地完成这些程序。Lucene让你的应用程序处理业务规则,而把复杂的索引和搜索实现掩盖起来,只提供简单易用的API。
为了帮助理解,可以把Lucene当作层,应用程序位于它之上。现今,大量的应用都是利用Lucene对文本进行检索,而很少用来对多媒体文件进行检索。
二、Lucene的系统结构及模块功能
Lucene的系统主要分为三大部分:基础结构封装、索引核心以及对外接口[2]。其中直接操作索引文件的索引核心又是系统的重??。
Lucene将所有源码分为七个模块:①Lucene.Net.Analysis:(词法分析器,主要用于切词,默认的语言为英语,提供德语与俄语的分析器。其它语言可通过扩展此类实现);②Lucene.Net.Documen(包含索引存储的各个单元:Document, Field… 。);③Lucene.Net.Index(索引管理,包括索引建立、删除等。);④Lucene.Net.QueryParser(查询分析器,实现查询关键词间的运算,如与、或、非等。把查询语句转化成索引可理解的语句。);⑤Lucene.Net.Search(检索管理,根据查询条件,检索得到结果。);⑥Lucene.Net.Store(数据存储管理,主要包括一些底层的I/O操作。);⑦Lucene.Net.Util(一些公用类。包含一些公用方法和经过优化的数据结构。)。
其中,Lucene系统重点的索引核心功能分为:创建索引和查询索引。这个两块功能主要的过程如下:①创建索引过程:Lucene.Net.Util使用Lucene.Net.Analysis对要索引文件的内容进行词法分析,并使用Lucene.Net.Util与Lucene.Net.Document把文本创建为索引并优化,然后交给Lucene.Net.Store处理,由Lucene.net.Store完成底层的I/O操作,把索引写入索引文件;②查询索引过程:用户输入查询语句,首先调用Lucene.Net.QueryParser对查询语句进行分析,并转化成索引可理解的语句。然后由Lucene.Net.Search根据查询语句检索索引,找到匹配的结果,并给每个结果一个匹配度分数,最后返回查询结果。这其中当然也涉及Lucene.Net.Util与Lucene.Net.Document这两个基础结构包的调用。
三、Lucene的算法
Lucene主要的算法有:归并算法、增量算法、查找算法 [3]。
1.归并算法
归并算法主要是合并找到需要的段:①已知各个段内的Term都是已排序的②用一个小根堆来表示存储各个段③堆中的顺序由段中当前第一个Term决定④取出当前堆中最小的元素写入新的索引段⑤从最小元素所在的段中删除该元素⑥重新调整堆。
2.增量算法
增量算法就是用于判断当前的索引中是否有需要合并的段。在创建索引过程中,存储的单位被称作段。一个段由几个文档组成,当段中的文档达到一定数量时就合并成一个新段。IndexWriter中的MergeFac
文档评论(0)