怎么会是lucene?
在好朋友lhelper的帮助下,开始学习全文搜索引擎lucene了。从网上搜索了一些全文搜索的资料后发现这方面的产品很多,光是在http://www.searchtools.com 上你可以查到100多个搜索的工具(包括源代码)。如果你在百度上以“全文搜索”为关键字 搜索的话,会发现除了理论上的介绍以外,大部分的实例都是来自lucene。为什么只有lucene这么广为接受呢?
这种感觉对我来讲,就好比keso张大嘴巴说:怎么会是新浪?。
我想一个产品的普及有技术上的先进是必要条件,产品推广是充分条件。
而这两条lucene都具备了。
首先Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家。这样的大腕开发出来的产品自然让大家心服口服。可我认为这还不是lucene如此广受欢迎的主要原因。我认为主要原因是:
1、 Lucene不是一个完整的全文索引应用,而是是一个用JAVA写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。这样的定位,使得lucene有很高的抽象层次,便于扩展和整合到已有的系统。因为对于大多数的全文搜索应用来说,我们需要的是一个开发工具包而不是最终产品(虽然很多搜索引擎也可以扩展特性功能)。这也是程序员最愿意接受的封装层次。
2、 Lucene的API接口设计的比较通用,输入输出结构都很像数据库的表==>记录==>字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到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
<!--StartFragment -->Lots Of Interest in Lucene Desktop
田春峰
2004-12-23
分享到:
相关推荐
Lucene是一款强大的全文搜索引擎库,最初由Apache软件基金会开发,现已成为Apache Lucene项目的一部分。它提供了高效的索引和搜索功能,广泛应用于各类数据检索系统。在.NET环境中,Lucene通过Lucene.Net实现了对C#...
Lucene是一个由Apache软件基金会开发的高性能、全文本搜索库,提供了对文本的索引和搜索功能。在4.7.1版本中,Lucene已经相当成熟,支持多种索引优化策略和查询方式。 索引构建是Lucene的核心部分。在这个示例中,...
更新文档时,Lucene会处理旧索引和新索引的合并;删除文档时,它会在索引中添加删除标记。 5. **性能优化** 为了提升搜索效率,Lucene提供了一些优化策略,如缓存、位图过滤、近似搜索等。通过合理配置和调优,...
Lucene会定期检查当前索引中是否有需要合并的段,这一过程涉及到对SegmentInfos的检查。一旦发现有多个相邻的、大小相当的段,就会启动归并过程。归并策略的核心是通过比较各段的第一个Term,利用小根堆数据结构进行...
在搜索时,他们会构造查询语句并执行,Lucene会返回匹配的文档结果。 通过深入研究这个Demo,开发者不仅可以理解Lucene的基本用法,还能掌握如何在实际项目中整合和优化分词过程。对于那些对自然语言处理或信息检索...
4. **分词**:在处理文本时,Lucene会使用Analyzer进行分词,将句子分解成可搜索的独立单元,如单词或短语。 5. **索引过程**:Lucene的索引过程包括读取文档、分析文本、创建倒排索引、存储索引等步骤。这个过程中...
Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的搜索引擎库。它提供了一个简单但功能强大的API,用于索引和搜索文本数据,使得开发者可以轻松地在应用程序中实现复杂的...
Lucene是Apache软件基金会的一个开源项目,它是一个高性能、全文本搜索引擎库,可以被集成到各种应用中实现全文检索功能。Lucene提供了完整的搜索功能实现,包括索引创建、文档存储、查询解析和结果排序等。它的设计...
Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发并维护。它为Java开发者提供了强大的文本检索功能,被广泛应用于各种搜索引擎和信息检索系统中。本压缩包包含的是Lucene 3.5.0版本的全部源码,对于想要...
Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。它提供了一个高级、灵活的文本搜索API,允许开发者轻松地在应用程序中实现复杂的搜索功能。这次提供的“lucene-4.7.0”压缩包包含了Lucene 4.7.0...
此外,书中还会讨论Lucene的更新和维护,包括如何在已有的索引上添加、删除或修改文档,以及如何进行索引优化。这涉及到IndexWriter、SegmentMerger等类,它们确保了索引的一致性和性能。 在实际应用中,Lucene通常...
起初,Lucene 在 Doug 的个人网站上发布,后来移至 SourceForge,并最终在 2001 年底成为 Apache 基金会 Jakarta 项目的一部分,现在可以在 Apache 的官方网站上找到(http://lucene.apache.org)。 **全文检索的...
Java搜索引擎Lucene是一款开源的全文检索库,由Apache软件基金会开发并维护,它为Java开发者提供了强大的文本搜索功能。Lucene的核心目标是让开发者能够快速地在应用中集成高级的搜索功能,使得用户可以轻松地查找和...
Lucene是Apache软件基金会的一个开放源代码项目,它提供了一个高性能、全文本搜索的API。Lucene支持索引和搜索文本,可以集成到各种Java应用程序中,帮助开发者轻松实现全文检索功能。其核心特性包括文档分析、索引...
- **查询处理**:当用户提交查询时,系统会根据已建立的索引执行相应的搜索逻辑。 - **相关性评分**:为了提供最相关的搜索结果,系统需要计算查询与文档的相关度。 ##### 2. 索引里面究竟存些什么? 索引是全文...
面对已经存在的商业全文检索引擎,Lucene也具有相当的优势 ,后,转移到apache软件基金会后,借助于apache软件基金会的网络平台,程序员可以方便的和开发者、其它程序员交流,促成资源的共享,甚至直接获得已经编写...
在时间区间搜索中,我们通常会用到RangeQuery。RangeQuery允许我们在指定的范围内查找匹配的文档,包括或者不包括边界。例如,我们可以创建一个RangeQuery来查找所有在特定日期之间创建的文档。 以下是一个简单的...
因此,通常会将其分割成多个小块(块大小可以根据HDFS块大小来设置),以便在Hadoop中并行处理。 3. **索引存储**:使用Hadoop的API,如`FileSystem`类,将每个索引块写入HDFS。每个索引块可以视为Hadoop的一个文件...
特别提到了"尚学堂科技_张志宇_lucene.ppt",这可能是一个由尚学堂科技的张志宇制作的Lucene讲解PPT,通常这样的PPT会以简洁明了的方式介绍Lucene的基本概念、使用方法和实战技巧。 **Lucene核心知识点** Apache ...
Lucene是一个高效、可扩展的Java开源全文检索库,由Apache软件基金会支持。它提供了全文检索功能,能够对大量文本数据进行索引和搜索,适用于各种需要全文搜索功能的应用场景。本文主要介绍了Lucene-3.0.3版本的安装...