基于Lucene多索引搜索研究与应用.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Lucene多索引搜索研究与应用

基于Lucene多索引搜索研究与应用   摘要:Lucene是一个高性能、易扩展的基于Java技术的开源信息检索工具包,它可以为多种应用程序提供索引和搜索功能。该文探讨了Lucene中在多个索引上进行搜索的方式,分析了每种方式的性能以及应用范围,引进Java的线程池技术对多索引上的多线程搜索算法进行改进,并且通过实验验证改进算法的优越性。   关键词:Lucene;多索引;线程池   中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)07-1470-03   Research and Application of Multi-index Based Lucene   GAO Yu-liang, ZHANG Ji-qiang, BAI Yao   (Dalian JiaoTong University, Dalian 116028, China)   Abstract: Lucene is a tool based on Java technology, it is an open source,and possess character of high performance and being easy to expand.Lucene provide a function to searcher for application.The paper discuss a searching method about mutile index in lucene,and its performance and range of application. Java Thread Pool are used to improve multile index ing searcher , and certify that this algorithm is higher performance.   Key words: Lucene; multi index; thread pool   对于大型的检索系统,索引文件可能存在于多个目录中,每次进行检索请求时,检索系统可能要对存在于多个目录中的索引文件进行检索。在这种情况下,Lucene主要提供两种方式,即MultiSearcher和ParalellMultiSearcher对存在于多目录中的索引进行搜索。MultiSearcher是用一个循环把存在于不同目录中的索引取出,然后逐个检索并合并搜索结果。ParalellMultiSearcher是用多线程的方式,对于不同目录中的索引建立不同的线程进行并行的搜索,同时动态的合并搜索结果。但以前的Lucene开发包中的ParalellMultiSearcher检索方式的性能低于MultiSearcher,本文对ParalellMultiSearcher的多线程实现方式进行改进,引入了线程池技术。   1 Lucene的构成及检索机制   1.1 Lucene的构成   Lucene是Apache基金会Jakarta的一个子项目,完全按照面向对象的思想设计而成。各个类之间满足低耦合的原则,是一个高效率的搜索工具包。Lucene完全由Java JDK开发而成,没有用到任何第三方开发包。基于Java语言良好的可移植性,Lucene也具有良好的跨平台特性。最新的Lucene开发包在2011年3月份发布,版本为3.0。   1.2 Lucene主要由以下部分组成   1) Analysis包。包括Lucene的语言分词器。最新的开发包提供很好的多语言分词器适应多语言检索系统的开发。   2) Index包。此包为Lucene的非常关键的一个包,包换Lucene中各种索引文件的生成以及索引的删除、更新等类。   3) Document包。包括Lucene中建立索引的数据结构,构成Lucene中索引文件的组成部分。   4) Messages包。提供一个消息接口。   5) QueryParse包。Lucene的查询分析包,提供各种查询间的各种运算,包括与,或,非等。   6) Store包。提供有关索引文件存储方式的包。   7) Search包。Lucene的检索包,这个包主要是提供在已经生成的索引(也就是用Index生成的各种类型的索引)之上进行检索的各个类。   8) Util包。一个工具包。   1.3 Lucene的索引机制   在Lucene中,索引(Index)由Segment组成,Segment由Document组成,Document由Field组成,Field由Term组成。生成的索引有三种存储方式:内存(RAM),文件系统(FS),数据库系统(DB)。RAM方式

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档