Baidu
和
google
的强大的
web
搜索功能早已深入人心,我们现在已经非常依赖于这两个网站了,在学习和工作中,只要遇到我们自己不了解的东西或遗忘了的东西,我们都会到
baidu
或
google
上去搜一把。
Google
推出的一款桌面搜索工具
GoogleDesktop
主要用来提供对本机文件的搜索,比操作系统自带的搜索功能强大的多。
那我们能在我们自己开发的系统中加上搜索功能吗?我们
java
开发者能用
java
实现类似的搜索功能吗?我们无所不能的
java
当然可以啊。早在
2001
年之前,就有一个绝顶聪明的人用
java
实现了全文检索功能,该工具包现在已经成为
java
社区中最著名的开源软件之一。这个绝顶聪明的人叫
Doug Cutting
,这个工具包就叫
lucene
。
Lucene
是一个开源的全文检索工具包,使用
java
实现。从
2000
年开始,
Doug Cutting
把
lucene
放到
SourceForge
上供人随意下载,到了
2001
年,
Apache
自由软件联盟将其收入,成为他的一个子项目。从那时起,越来越多的人开始使用和研究他。
Lucene
现在已经成为
java
社区中最著名的开源软件之一,它提供了一组丰富的
API
以供开发者为
java
应用加入全文检索功能。
Lucene
实现全文检索功能主要有三个步骤
<!-- [if !supportLists]-->1、
建立索引
<!-- [endif]-->
建立索引是全文检索的基础,
lucene
根据索引检索用户需要查找的目标文档,如果没有索引也就无所谓检索。建立索引时,采用倒排索引的方式进行。什么是倒排呢,就是将一篇文章的文字分成一个个词条,将词条在文章中出现的位置,文章的名称和文章的路径等信息和该词条建立关联。当用户输入关键词检索时,
lucene
用词条匹配用户的关键词,匹配成功了,就把此条关联的信息作适当处理输出给用户,这样就用户得到了要查询的结果。
<!-- [if !supportLists]-->2、
查找索引
<!-- [endif]-->
当索引建立好后,就可以对其进行查找了。
Lucene
所建立的索引是存放在文件系统中的,因此查找索引时,需要首先将索引文件打开读入到内存。
<!-- [if !supportLists]-->3、
更新索引
<!-- [endif]-->
由于我们要查找的内容总是不断变化的,所以索引文件也不是一成不变的,而是一个不断更新的过程。
Lucene
也提供了丰富的功能来支持索引的更新功能。
下面的代码演示了
lucene
如何将存储与本地的文件建立索引
//
索引文件存放的路径
File INDEX_DIR =
new
File("index");
IndexWriter writer =
new
IndexWriter(
INDEX_DIR
,
new
StandardAnalyzer(),
true
);
//
要建立索引的文件的目录
File file=
new
File(args[0]);
writer.addDocument(FileDocument.Document
(file));
下面的代码演示了
lucene
如何检索索引
IndexReader reader = IndexReader.open
(
new
File("index"));
Searcher searcher =
new
IndexSearcher(reader);
QueryParser parser =
new
QueryParser(field,
new
StandardAnalyzer());
Hits hits = searcher.search(query);//hits
类似于
jdbc
中的
Resultset
本文只是简单的介绍了一下
lucene
是什么以及其基本原理,自行研究。
分享到:
相关推荐
首先,我们需要了解什么是Lucene。Lucene是一个由Apache软件基金会开发的高性能、全文本搜索库,提供了对文本的索引和搜索功能。在4.7.1版本中,Lucene已经相当成熟,支持多种索引优化策略和查询方式。 索引构建是...
1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。 2 lucene的工作方式 lucene提供的服务...
首先,我们要了解什么是Lucene索引。Lucene的索引是一种倒排索引,它通过分析文档内容,将每个单词映射到包含该单词的文档集合,从而实现快速查找。然而,对于开发者来说,直接查看这些索引结构通常并不直观,这就...
**什么是Lucene** Lucene是一个高性能、可伸缩的全文检索工具包,它不是一个完整的搜索引擎产品,而是一个用于构建搜索引擎的基础库。Lucene提供了一套文本分析接口,支持多种语言和文件格式的分析。它的索引文件...
**全文检索(Lucene)详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发并维护。它提供了一个简单但功能强大的API,用于在各种数据源中进行高效的全文检索。Lucene不仅用于网站搜索引擎,还广泛...
**2.1 什么是Lucene** Lucene是一个全文搜索框架,不是独立的搜索引擎。它可以被用于构建各种类型的搜索应用,比如网站搜索引擎、文档库等。类似Servlet在构建Web应用程序中的角色,Lucene提供了底层功能,开发者...
首先,我们要明白什么是Lucene。Lucene是Apache软件基金会的一个项目,它提供了一个高性能、可扩展的全文检索库。这个库可以被用来构建搜索功能,使得开发者能够在自己的应用程序中实现高效的文本搜索。Lucene-...
**Lucene 全文检索** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发,被广泛应用于各种搜索引擎的构建。它提供了一个简单但功能强大的 API,可以方便地集成到 Java 应用程序中,实现对文本数据的...
**1.1 什么是Lucene** Lucene是一个由Apache基金会维护的开源全文检索引擎工具包。它为开发者提供了一个简便的接口,使得在应用程序中实现高效的全文检索功能成为可能。Lucene不仅仅是一个简单的搜索工具,而是一个...
**一、什么是Lucene?** Apache Lucene是一个开源的Java库,专门用于实现高性能、可扩展的全文检索。它提供了索引和搜索文本的功能,并且支持多种复杂的搜索语法,使得开发者能够快速地构建出复杂的搜索引擎。...
**一、什么是Lucene** Lucene是Apache软件基金会下的一个开源全文检索库,它提供了一个高性能、可扩展的信息检索服务。Lucene最初由Doug Cutting开发,现在已经成为Java社区中事实上的标准全文检索引擎库。Lucene...
##### 2.1 什么是 Lucene? Apache Lucene 是一个高性能、全功能的文本搜索引擎库。它提供了一套完整的 API 来支持索引创建、文档检索以及查询优化等功能。由于其高度可扩展性和灵活性,Lucene 成为了构建复杂搜索...
- **什么是Lucene**:Lucene是一款成熟且免费的Java全文索引检索工具包,由Doug Cutting开发。它支持跨平台使用,被贡献给Apache基金会,成为Apache项目的一部分。Lucene并非成品软件或网络爬虫,而是一个可以集成到...
在这一章中,读者将了解到什么是Lucene,它为何重要,以及它在信息检索领域的地位。Lucene被定义为一个全文搜索引擎库,用于帮助开发者构建高效、可扩展的搜索功能。本章会介绍Lucene的历史、设计目标以及其在开源...
1. **什么是Lucene?** Lucene是一个纯Java库,它可以将数据结构化为索引,以便快速搜索。它处理文本,将其分词并创建倒排索引,这是一种高效的数据结构,用于存储文档中每个单词的出现位置信息。这使得搜索操作...
lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....
1. **Lucene简介**:解释什么是Lucene,它的主要功能,以及为什么在Web开发中选择使用它。 2. **集成Lucene到Web应用**:描述如何将Lucene库添加到Web项目的依赖管理中,例如通过Maven或Gradle配置。 3. **创建...