Lucene构架全文搜索引擎Lucene历史是一个基于Java的全文索引工具包,Lucene的奉献者DougCutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些Internet底层架构的研究。他奉献出的Lucene的目标是为各种中小型应用程序参加全文检索功能。Lucene的开展历程:早先发布在作者自己的lucene,后来发布在SourceForge,2023年年底成为APACHE基金会Jakarta的一个子项目。已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比拟著名的有:Jive:WEB论坛系统;Eyebrows:邮件列表HTML归档/浏览/查询系统,本文的主要参考文档“TheLucenesearchengine:Powerful,flexible,andfree〞作者就是EyeBrows系统的主要开发者之一,而EyeBrows已经成为目前APACHE项目的主要邮件列表归档系统;Cocoon:基于XML的Web发布框架,全文检索局部使用了Lucene;Eclipse:基于Java的开放开发平台,帮助局部的全文索引使用了Lucene。Lucene优点Lucene作为一个全文检索引擎,其具有如下突出的优点:〔1〕索引文件格式独立于应用平台。Lucene定义了一套以8位字节为根底的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。〔2〕在传统全文检索引擎的倒排索引的根底上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,到达优化的目的。〔3〕优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能〔4〕设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。〔5〕已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询〔FuzzySearch〕、分组查询等等。面对已经存在的商业全文检索引擎,Lucene也具有相当的优势。首先,它的开发源代码发行方式〔遵守ApacheSoftwareLicense〕,在此根底上程序员不仅仅可以充分的利用Lucene所提供的强大功能,而且可以深入细致的学习到全文检索引擎制作技术和面相对象编程的实践,进而在此根底上根据应用的实际情况编写出更好的更适合当前应用的全文检索引擎。在这一点上,商业软件的灵活性远远不及Lucene。其次,Lucene秉承了开放源代码一贯的架构优良的优势,设计了...