Lucene是一个全文搜索框架,而不是应用产品,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。
已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有:Jive:WEB论坛系统;Eyebrows:邮件列表HTML归档/浏览/查询系;Cocoon:基于XML的web发布框架,全文检索部分使用了Lucene;apache软件基金会的网站使用了Lucene作为全文检索的引擎;IBM的开源软件eclipse的2.1版本中也采用了Lucene作为帮助子系统的全文索引引擎;IBM的商业软件Web Sphere中也采用了Lucene。
Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。Lucene是一个高性能、可伸缩的信息搜索(IR)库。它使你可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的成熟的、免费的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于在Apache软件许可 [ASF, License]。同样,Lucene是当前与近几年内非常流行的免费的Java信息搜索(IR)库。
lucene提供的服务实际包含两部分:一入一出。所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删除;所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词定位源。
写入流程:源字符串首先经过analyzer处理,包括:分词,分成一个个单词;去除stopword(可选)。将源中需要的信息加入Document的各个Field中,并把需要索引的Field索引起来,把需要存储的Field存储起来。 将索引写入存储器,存储器可以是内存或磁盘。
读出流程:用户提供搜索关键词,经过analyzer处理。对处理后的关键词搜索索引找出对应的Document。用户根据需要从找到的Document中提取需要的Field。
索引过程:从命令行读取文件名(多个),将文件分路径(path字段)和内容(body字段)2个字段进行存储,并对内容进行全文索引:索引的单位是Document对象,每个Document对象包含多个字段Field对象,针对不同的字段属性和数据输出的需求,对字段还可以选择不同的索引/存储字段规则。
分享到:
相关推荐
**Lucene学习总结** 在深入理解Lucene之前,我们首先需要了解什么是全文检索。全文检索是一种从大量文本数据中快速查找所需信息的技术。它通过建立索引来实现高效的搜索,而Lucene正是Java环境下最著名的全文搜索...
### Lucene3源码分析知识点概述 #### 一、全文检索的基本原理 ##### 1....以上是对Lucene3源码分析的一些关键知识点总结,通过对这些概念和技术的理解,可以更好地掌握Lucene的工作原理及其应用。
Java搜索工具——Lucene实例总结(一) 在Java开发中,搜索引擎已经成为不可或缺的一部分,而Apache Lucene正是一个强大的全文搜索引擎库。这篇博文将带你深入理解Lucene的基本概念和使用方式,帮助你快速入门并掌握...
5. **执行查询**: 使用IndexSearcher的search方法,传入Query对象,获取匹配的ScoreDoc数组,表示匹配的文档及其相关性评分。 6. **结果展示**: 根据ScoreDoc数组,从索引中获取原始Document,展示匹配的文件信息。...
本篇将围绕“lucene全文检索案例源码”展开,深入探讨Lucene的工作原理及其在实际案例中的应用。 一、Lucene简介 Lucene是由Apache软件基金会开发的全文检索引擎,它提供了一个高效、可扩展的全文检索框架。Lucene...
4. Lucene 的工作方式: - **写入流程**:源数据(字符串)首先经过 Analyzer 分析,包括分词和去除停用词。然后,将信息存储在 Document 对象的不同 Field 中,对需要索引的 Field 进行索引,存储在内存或磁盘的...
总结,Lucene作为Java平台上的搜索引擎库,为我们提供了强大的文本检索能力。通过对源码的深入学习,不仅可以理解其工作原理,还能提升我们的搜索引擎开发技能,为构建高效、精准的检索系统打下坚实基础。通过提供的...
#### 知识点一:Lucene 简介与应用场景 Lucene 是一个高性能、全功能的文本搜索库,它为开发者提供了构建强大搜索应用的能力。本书《Lucene in Action》第二版针对的是 Apache Lucene 3.0 版本,是该领域内的一部...
在本文中,我们将深入探讨Lucene组件及其在提高检索效率方面的应用。 **1. Lucene组件介绍** 1. **Analyzer**: 分析器是Lucene中处理文本的关键组件,负责将输入的字符串分解为可搜索的术语(tokens)。不同的分析...
本文将深入探讨Lucene 6.6.2版本的API使用及其与IKAnalyzer中文分词器的集成应用。 一、Lucene简介 Lucene是一个高性能、可扩展的信息检索库,它提供了完整的搜索功能,包括索引创建、文档存储和查询。在Lucene ...
#### 一、Lucene简介 Lucene是一款非常优秀且成熟的开源全文索引检索工具包,它完全采用Java语言编写,由Doug Cutting于1999年创建,并于2001年10月捐赠给了Apache基金会,成为Apache基金的一个子项目。Lucene不仅...
一、Lucene简介 Lucene的核心功能包括文档的索引、搜索以及相关性排序。它提供了一个简单的API,允许开发者对文本进行索引,并通过搜索接口快速找到相关的文档。Lucene 3.0.3是一个相对稳定的版本,尽管较新的版本...
以下将详细探讨Lucene的核心知识点及其在4.10.3版本中的特点。 一、Lucene概述 1.1 定位与目标 Lucene最初设计的目标是提供一套高性能、可扩展的全文检索框架,使得开发者能够轻松地在应用程序中集成全文搜索功能...
#### 三、Lucene简介及其架构 1. **Lucene简介**: - Lucene是一款高性能、全功能的全文检索引擎库。 - 适用于多种编程语言,但最初为Java设计。 - 官方网站:http://lucene.apache.org/ - 版本:本文档中使用...
总结来说,Lucene 2.4.1是搜索引擎开发的重要工具,其源码的分析与学习对于提升对全文检索技术的理解至关重要。无论是熟悉核心包的类与接口,还是实践demos包中的示例,都将有助于开发者更好地利用Lucene构建高效、...
#### 一、Lucene简介 Lucene是一个高性能、全功能的文本搜索引擎库,由Java编写而成,被广泛应用于各种基于文本的数据检索场景中。无论是用于网站内容搜索还是文档管理系统的全文搜索功能,Lucene都能提供强大的...
Lucene 的核心是基于倒排索引(Inverted Index)的数据结构,这种索引方式能够快速定位到包含特定关键词的文档。在创建索引时,Lucene 分析文本并将其拆分为词项(Tokens),然后为每个词项创建一个词汇表,记录所有...
总结,Lucene.NET 2.9.4源码版为.NET开发者提供了宝贵的资源,通过阅读源码,我们可以学习到全文搜索引擎的设计思想,理解其内部工作流程,从而在实际项目中更加自如地运用Lucene.NET,提高搜索功能的效率和用户体验...
Lucene 2.0.0是其早期的一个重要版本,虽然已有些许年代,但其中蕴含的技术理念和实现方式仍具有很高的学习价值。对于那些致力于构建搜索引擎或者对信息检索技术感兴趣的朋友来说,了解并掌握Lucene 2.0.0是必不可少...
**Lucene 3.1 使用教程** ...通过理解Lucene的基本概念和工作流程,结合实际应用场景,你可以有效地利用这个工具来提升系统的搜索体验。在实际项目中,记得根据需求选择合适的分析器,以达到最佳的搜索效果。