`
ihuashao
  • 浏览: 4861007 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多

怎么会是lucene?

在好朋友lhelper的帮助下,开始学习全文搜索引擎lucene了。从网上搜索了一些全文搜索的资料后发现这方面的产品很多,光是在http://www.searchtools.com 上你可以查到100多个搜索的工具(包括源代码)。如果你在百度上以“全文搜索”为关键字 搜索的话,会发现除了理论上的介绍以外,大部分的实例都是来自lucene。为什么只有lucene这么广为接受呢?

这种感觉对我来讲,就好比keso张大嘴巴说:怎么会是新浪?

我想一个产品的普及有技术上的先进是必要条件,产品推广是充分条件。

而这两条lucene都具备了。

首先Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家。这样的大腕开发出来的产品自然让大家心服口服。可我认为这还不是lucene如此广受欢迎的主要原因。我认为主要原因是:

1、 Lucene不是一个完整的全文索引应用,而是是一个用JAVA写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。这样的定位,使得lucene有很高的抽象层次,便于扩展和整合到已有的系统。因为对于大多数的全文搜索应用来说,我们需要的是一个开发工具包而不是最终产品(虽然很多搜索引擎也可以扩展特性功能)。这也是程序员最愿意接受的封装层次。

2、 LuceneAPI接口设计的比较通用,输入输出结构都很像数据库的表==>记录==>字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到Lucene的存储结构/接口中。(上面语句有些来自 在应用中加入全文检索功能——基于JAVA的全文索引引擎Lucene简介)。

第二条关于Lucne 的推广。 Lucene在国内如此普及,我想车东的一系列搜索相关的文章介绍起了很大的推动作用。正如竹笋炒肉说的:不仅仅在推广和介绍方面,车东Lucene的汉化及web应用,也作出了极大的极大的贡献。

尽管有一些介绍其他搜索引擎的文章,但是影响要小多了。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

在阅读了国内关于lucene的很多文章后,我发现大部分的介绍都和车东的文章雷同(文字出入很大,估计不是抄袭,呵呵),但都是介绍如何迅速构建一个lucene式的服务,大部分属于hello world级别的。

在车东的文章中提到中文索引文件所占的空间和原文几乎一样大!这一点可让人无法接受,即使英文资料索引所占空间也达到了原文的30%50%。如此发展下去google、百度们一定是海量硬盘消费的最大客户了。很显然对索引文件的优化是搜索引擎一个重要的部分。

另外如果要想让lucene成为分布式的搜索引擎,也要从索引文件下手,要么扩展索引文件成为分布式文件系统,要么把索引文件放到数据库中,利用数据库的分布式性能提供分布式搜索服务。

既然如此,我就有了分析lucene索引文件格式的想法。

我会在以后的文章中重点分析lucene索引的文件格式。

lucene目前已经提供了lucene索引文件格式的标准文档,很多人基于此开发出了多种语言版本的lucene.

ref: http://java2.5341.com/1_98.html

一个针对DAo的演示例子

基于JAVA技术的搜索引擎的研究与实现

http://udoo.51.net/mt/archives/000089.html

http://www.theserverside.com/news/thread.tss?thread_id=23043

http://www.tbray.org/ongoing/When/200x/2003/07/30/OnSearchTOC

<!--StartFragment -->Lots Of Interest in Lucene Desktop

http://www.getopt.org/luke/


田春峰

2004-12-23

分享到:
评论

相关推荐

    chinese_lucene.rar_Lucene C#_Lucene for .net_PanGu4Lucene_lucene

    Lucene是一款强大的全文搜索引擎库,最初由Apache软件基金会开发,现已成为Apache Lucene项目的一部分。它提供了高效的索引和搜索功能,广泛应用于各类数据检索系统。在.NET环境中,Lucene通过Lucene.Net实现了对C#...

    Lucene示例 BM25相似度计算

    Lucene是一个由Apache软件基金会开发的高性能、全文本搜索库,提供了对文本的索引和搜索功能。在4.7.1版本中,Lucene已经相当成熟,支持多种索引优化策略和查询方式。 索引构建是Lucene的核心部分。在这个示例中,...

    lucene in action英文版 lucene 3.30包

    更新文档时,Lucene会处理旧索引和新索引的合并;删除文档时,它会在索引中添加删除标记。 5. **性能优化** 为了提升搜索效率,Lucene提供了一些优化策略,如缓存、位图过滤、近似搜索等。通过合理配置和调优,...

    lucene讲义 叫你用lucene算法

    Lucene会定期检查当前索引中是否有需要合并的段,这一过程涉及到对SegmentInfos的检查。一旦发现有多个相邻的、大小相当的段,就会启动归并过程。归并策略的核心是通过比较各段的第一个Term,利用小根堆数据结构进行...

    Lucene-Demo.rar Lucene分词的demo

    在搜索时,他们会构造查询语句并执行,Lucene会返回匹配的文档结果。 通过深入研究这个Demo,开发者不仅可以理解Lucene的基本用法,还能掌握如何在实际项目中整合和优化分词过程。对于那些对自然语言处理或信息检索...

    lucene in action源码

    4. **分词**:在处理文本时,Lucene会使用Analyzer进行分词,将句子分解成可搜索的独立单元,如单词或短语。 5. **索引过程**:Lucene的索引过程包括读取文档、分析文本、创建倒排索引、存储索引等步骤。这个过程中...

    Lucene的原理完整版pdf

    Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的搜索引擎库。它提供了一个简单但功能强大的API,用于索引和搜索文本数据,使得开发者可以轻松地在应用程序中实现复杂的...

    Lucene全文检索引擎

    Lucene是Apache软件基金会的一个开源项目,它是一个高性能、全文本搜索引擎库,可以被集成到各种应用中实现全文检索功能。Lucene提供了完整的搜索功能实现,包括索引创建、文档存储、查询解析和结果排序等。它的设计...

    Lucene3.5源码jar包

    Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发并维护。它为Java开发者提供了强大的文本检索功能,被广泛应用于各种搜索引擎和信息检索系统中。本压缩包包含的是Lucene 3.5.0版本的全部源码,对于想要...

    lucene-4.7.0全套jar包

    Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。它提供了一个高级、灵活的文本搜索API,允许开发者轻松地在应用程序中实现复杂的搜索功能。这次提供的“lucene-4.7.0”压缩包包含了Lucene 4.7.0...

    Annotated Lucene 中文版 Lucene源码剖析

    此外,书中还会讨论Lucene的更新和维护,包括如何在已有的索引上添加、删除或修改文档,以及如何进行索引优化。这涉及到IndexWriter、SegmentMerger等类,它们确保了索引的一致性和性能。 在实际应用中,Lucene通常...

    Lucene简介.介绍

    起初,Lucene 在 Doug 的个人网站上发布,后来移至 SourceForge,并最终在 2001 年底成为 Apache 基金会 Jakarta 项目的一部分,现在可以在 Apache 的官方网站上找到(http://lucene.apache.org)。 **全文检索的...

    Java搜索引擎 Lucene

    Java搜索引擎Lucene是一款开源的全文检索库,由Apache软件基金会开发并维护,它为Java开发者提供了强大的文本搜索功能。Lucene的核心目标是让开发者能够快速地在应用中集成高级的搜索功能,使得用户可以轻松地查找和...

    lucene所有的jar包

    Lucene是Apache软件基金会的一个开放源代码项目,它提供了一个高性能、全文本搜索的API。Lucene支持索引和搜索文本,可以集成到各种Java应用程序中,帮助开发者轻松实现全文检索功能。其核心特性包括文档分析、索引...

    lucene3源码分析

    - **查询处理**:当用户提交查询时,系统会根据已建立的索引执行相应的搜索逻辑。 - **相关性评分**:为了提供最相关的搜索结果,系统需要计算查询与文档的相关度。 ##### 2. 索引里面究竟存些什么? 索引是全文...

    Lucene4.X第九讲-Lucene搜索深入实战

    面对已经存在的商业全文检索引擎,Lucene也具有相当的优势 ,后,转移到apache软件基金会后,借助于apache软件基金会的网络平台,程序员可以方便的和开发者、其它程序员交流,促成资源的共享,甚至直接获得已经编写...

    Lucene时间区间搜索

    在时间区间搜索中,我们通常会用到RangeQuery。RangeQuery允许我们在指定的范围内查找匹配的文档,包括或者不包括边界。例如,我们可以创建一个RangeQuery来查找所有在特定日期之间创建的文档。 以下是一个简单的...

    如何将Lucene索引写入Hadoop?

    因此,通常会将其分割成多个小块(块大小可以根据HDFS块大小来设置),以便在Hadoop中并行处理。 3. **索引存储**:使用Hadoop的API,如`FileSystem`类,将每个索引块写入HDFS。每个索引块可以视为Hadoop的一个文件...

    Lucene资料大全(包括Lucene_in_Action书等)

    特别提到了"尚学堂科技_张志宇_lucene.ppt",这可能是一个由尚学堂科技的张志宇制作的Lucene讲解PPT,通常这样的PPT会以简洁明了的方式介绍Lucene的基本概念、使用方法和实战技巧。 **Lucene核心知识点** Apache ...

    Lucene教程.pdf

    Lucene是一个高效、可扩展的Java开源全文检索库,由Apache软件基金会支持。它提供了全文检索功能,能够对大量文本数据进行索引和搜索,适用于各种需要全文搜索功能的应用场景。本文主要介绍了Lucene-3.0.3版本的安装...

Global site tag (gtag.js) - Google Analytics