.NET版本的Lucene - NLucene

fmms 12年前
     <p><span style="color:#ff6600;">Lucene是Apache软件基金会Jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。</span><br /> Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。<br /> Lucene的原作者是Doug Cutting,他是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些Internet底层架构的研究。早先发布在作者自己的<a href="/misc/goto?guid=4959500176887636289">http://www.lucene.com/</a>,后来发布在<a href="/misc/goto?guid=4959500177052841972">SourceForge</a>,2001年年底成为apache软件基金会Jakarta的一个子项目:<a href="/misc/goto?guid=4959500177137646629">http://jakarta.apache.org/lucene/</a>。</p>    <p><span style="color:#ff6600;">NLucene是Lucene在.Net环境中的实现,其基本的原理和架构都是一致的,所以下文讨论的Lucene特性基本都适用于NLucene。因为文件格式等相同,所以Index文件都是通用的。</span></p>    <br />    <p><span>NLucene</span><span>作为一个全文检索引擎,具有如下突出的优点:</span></p>    <p><span><span>1、</span></span><span>索引文件格式独立于应用平台。</span><span>NLucene</span><span>定义了一套以</span><span>8</span><span>位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。</span></p>    <p><span><span>2、</span></span><span>在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。</span></p>    <p><span><span>3、</span></span><span>优秀的面向对象的系统架构,使得对于</span><span>NLucene</span><span>扩展的学习难度降低,方便扩充新功能。</span></p>    <p><span><span>4、</span></span><span>设计了独立于语言和文件格式的文本分析接口,索引器通过接受</span><span>Token</span><span>流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。</span></p>    <p><span><span>5、</span></span><span>已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,</span><span>NLucene</span><span>的查询实现中默认实现了布尔操作、模糊查询(</span><span>Fuzzy Search</span><span>)、分组查询等等。<br /> <br /> </span></p>    <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1325420605593" target="_blank">http://www.open-open.com/lib/view/home/1325420605593</a></p>