`
travels_with_you
  • 浏览: 21319 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多
什么是lucene
Apache Lucene是一个开放源程序的搜寻器引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自已需要自订其功能。 Lucene是apache软件基金会项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

Lucene的作者:
Lucene的原作者是Doug Cutting,他是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些Internet底层架构的研究。

Lucene的历史:
早先发布在作者自己的http://www.lucene.com/,后来发布在SourceForge,2001年年底成为apache软件基金会jakarta的一个子项目。 现在则是apache的顶级项目http://lucene.apache.org/

Lucene应用:
apache软件基金会的网站使用了Lucene作为全文检索的引擎
IBM的开源软件eclipse也采用了Lucene作为帮助子系统的全文索引引擎,
相应的IBM的商业软件Web Sphere中也采用了Lucene。
著名的Jive论坛使用了它
Eyebrows(EyeBrows是目前APACHE项目的主要邮件列表归档系统)邮件列表HTML归档/浏览/查询系统
也使用了它
Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。
Cocoon:基于XML的web发布框架,全文检索部分使用了Lucene
到现在lucene已经有C++、C#、Python和Perl的版本
更多关于lucene的应用见这里:http://wiki.apache.org/lucene-java/PoweredBy

Lucene能做什么
Lucene使你可以为你的应用程序添加索引和搜索能力(这些功能将在1.3节中描述)。Lucene可以索引并能使得可以转换成文本格式的任何数据能够被搜索。在图1.5可以看出,Lucene并不关心数据的来源、格式甚至它的语言,只要你能将它转换为文本。这就意味着你可经索引并搜索存放于文件中的数据:在远程服务器上的web页面,存于本地文件系统的文档,简单的文本文件,微软Word文档,HTML或PDF文件或任何其它能够提取出文本信息的格式。

同样,利用Lucene你可以索引存放于数据库中的数据,提供给用户很多数据库没有提供的

全文搜索的能力。一旦你集成了Lucene,你的应用程序的用户就能够像这样来搜索:+George +Rice –eat –pudding, Apple –pie +Tiger, animal:monkey AND food:banana等等。利用Lucene,你可以索引和搜索email邮件,邮件列表档案,即时聊天记录,你的Wiki页面……等等更多。

Lucene资料:
Lucene主页:http://lucene.apache.org/

中文的lucene教程: http://www.chedong.com/tech/lucene.html#intro

写的很好的lucene书:lucene in action

luceneAPI:http://lucene.zones.apache.org:8 ... ne-Nightly/javadoc/

lucene in action 示例代码:http://www.manning.com/hatcher2

lucene 的wiki:http://wiki.apache.org/lucene-ja ... edirect=FrontPageEN

Lucene的优点:
(1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。
(2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
(3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。
(4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。
(5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询、分组查询等等。

Lucene的周边
Nutch vs Lucene
Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。
Nutch 是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。

Nutch vs Larbin
"Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供Nutch vs Larbin
"Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供

Nutch 则还可以存储到数据库并建立索引。

搜索的概念(本段来自lucene in action原文):

索引和搜索

所有搜索引擎的核心就是索引的概念:将原始数据处理成一个高效的交差引用的查找结构以便于快速的搜索。让我们对索引和搜索过程做一次快速的高层次的浏览。

什么是索引,为什么它很重要?

想像一下,你需要搜索大量的文件,并且你想找出包含一个指定的词或短语的文件。你如何编写一个程序来做到这个?一个幼稚的方法是针对给定的词或短语顺序扫描每个文件。这个方法有很多缺点,最明显的就是它不适合于大量的文件或者文件非常巨大的情况。这时就出现了索引:为了快速搜索大量的文本,你必须首先索引那个文本然后把它转化为一个可以让你快速搜索的格式,除去缓慢的顺序地扫描过程。这个转化过程称为索引,它的输出称为一条索引。你可以把索引理解为一个可以让你快速随机访问存于其内部的词的数据结构。它隐含的概念类似于一本书最后的索引,可以让你快速找到讨论指定主题的页面。在Lucene中,一个索引是一个精心设计的数据结构,在文件系统中存储为一组索引文件。我们在附录B中详细地说明了索引文件的结构,但是目前你只须认为Lucene的索引是一个能快速的词汇查找的工具。

什么是搜索?

搜索是在一个索引中查找单词来找出它们所出现的文档的过程。一个搜索的质量用精确度和召回率来描述。召回率衡量搜索系统搜索到相关文档的能力,精确度衡量系统过滤不相关文档的能力。然而,在考虑搜索时你必须考虑其它一些因素。我们已经提到速度和快速搜索大量文本的能力。支持单个和多个词汇的查询,短语查询,通配符,结果分级和排序也是很重要的,在输入这些查询的时候也是友好的语法。Lucene强大的软件库提供了大量的搜索特征、bells和whistles。
分享到:
评论
1 楼 leiknospe 2009-03-12  
thanks for sharing!

相关推荐

    Lucene介绍的PPT

    【Lucene介绍】 Lucene是一个基于Java的全文检索库,由Apache软件基金会的Jakarta项目维护。它不是一个完整的全文搜索引擎,而是一个可嵌入到其他应用程序中的库,用于实现高效、快速的全文检索功能。Lucene的目标...

    开源搜索框架lucene介绍

    ### 开源搜索框架Lucene介绍 #### 一、Lucene简介 Lucene是一款非常优秀且成熟的开源全文索引检索工具包,它完全采用Java语言编写,由Doug Cutting于1999年创建,并于2001年10月捐赠给了Apache基金会,成为Apache...

    Lucene介绍,全文检索

    **Lucene介绍** Lucene是一个基于Java的全文索引工具包,由Doug Cutting创建,最初在www.lucene.com发布,后来成为Apache基金会Jakarta项目的一部分。Lucene不是完整的全文搜索引擎应用,而是一个可嵌入到其他应用...

    Lucene介绍+源码解读+功能分析

    ### Lucene介绍与源码解读 #### 一、Lucene概述 Lucene是一个开放源代码的全文检索引擎工具包,由Doug Cutting所创立,并于2002年捐赠给了Apache基金会。Lucene并非一个完整的搜索引擎解决方案,而是一个提供全文...

    Lucene介绍与入门使用 - 高压锅里的小白 - 博客园1

    【Lucene介绍与入门使用】 Lucene是一款由Apache软件基金会开发的开源全文检索引擎工具包。它不是一个完整的全文检索引擎,而是提供了一套强大的搜索引擎和索引引擎的架构,允许开发者在自己的应用程序中轻松实现...

    Lucene简介.介绍

    【Lucene 简介】 Lucene 是一个强大的开源全文搜索库,由 Java 编写,主要用于为应用程序添加全文检索功能。它不是一个完整的全文搜索引擎应用,而是一个工具包,允许开发者将其集成到自己的软件中,以实现高效、...

    Lucene介绍视频教程

    x-oss-process=style/pnp8(39.97KB,下载次数:225)下载附件2019-10-2502:02上传〖课程介绍〗:Lucene是apache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎。Lucene的目的是为软件开发人员...

    Lucene的介绍

    **Lucene简介** Lucene是Apache软件基金会的一个开放源代码项目,它是一个全文搜索引擎库,提供了文本分析、索引和搜索的基本功能。Lucene最初由Doug Cutting开发,现在已经成为Java领域中最广泛使用的全文检索库。...

    lucene in action 第二版英文版

    1. **Lucene介绍**:本书全面介绍了Apache Lucene 3.0版本的核心功能、特性和用法。 2. **搜索技术**:深入探讨了文本搜索的基础原理及在现代信息检索系统中的应用。 3. **API详解**:提供了丰富的代码示例,详细...

    Lucene的简单介绍

    Apache Lucene是一个非常流行的开源全文检索库,由Apache软件基金会提供。它为开发者提供了构建全文搜索功能的工具包,包括完整的查询引擎和索引引擎。Lucene的目标是为软件开发人员提供简单易用的工具包,方便地在...

    详解SpringBoot+Lucene案例介绍

    本文将详细介绍如何将SpringBoot与Lucene集成,以实现站内搜索系统。 Lucene是一个高性能的全文检索引擎,它可以帮助我们快速地检索大量的文本数据。 一、案例介绍 在本案例中,我们将创建一个商品的站内搜索系统...

    解密搜索引擎技术实战-Lucene&java;精华版

    在全文检索部分,结合Lucene介绍了搜索引擎的原理与进展。用简单的例子介绍了Lucene的最新应用方法,包括完整的搜索实现过程:从完成索引到搜索用户界面的实现。此外还进一步介绍了实现准实时搜索的方法,展示了Solr...

    1.解密搜索引擎技术实战:Lucene&Java;精华版(第3版)

    本书总结搜索引擎相关理论与实际解决方案,并给出了Java...在全文检索部分,结合Lucene介绍了搜索引擎的原理与进展。用简单的例子介绍了Lucene的应用方法,包括完整的搜索实现过程:从完成索引到搜索用户界面的实现。

    lucene简单介绍及solr搭建使用

    标题“lucene简单介绍及solr搭建使用”涉及了两个主要的开源搜索技术:Lucene和Solr。Lucene是Java开发的一个全文检索库,而Solr则是基于Lucene构建的企业级搜索平台,提供了更高级的功能和管理界面。 **Lucene简介...

    经典的lucene实例代码及详细解析以及lucene结构流程介绍

    经典的Lucene实例代码及详细解析以及Lucene结构流程介绍 Lucene是一个功能强大且灵活的开源搜索引擎库,它提供了一个简单易用的API,允许开发者快速构建搜索应用程序。下面将对Lucene的实例代码和结构流程进行详细...

    lucene的简单介绍以及使用

    **Lucene 简介** Lucene 是一个开源的全文搜索框架,由 Apache 软件基金会维护。它不是一个可以直接使用的应用程序,而是一个为开发者提供构建全文搜索功能的底层库,核心库为 lucene-core-2.2.0.jar。Lucene 提供了...

Global site tag (gtag.js) - Google Analytics