初识Lucene

  最近准备开发搜索引擎,而在Java的领域开发搜索引擎,基本都要了解Lucene。Lucene是提供高性能的全文检索包,但不提供完整的搜索功能。本文在这里简单介绍Lucene的基本架构与优点。Luence主要的应用方向是嵌入到各种应用中实现针对应用的全文索引/检索功能。

Luence的优点

  为什么在Java语言中开发搜索引擎基本都会提到Lucene呢?说明它必定有很多优秀的地方,根据网上的资料了解到它有以下的优点:

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

Luence的基本架构

Luence的组件架构

Luence的常用模块介绍

如下图所示,显示的是Luence5的常见模块,下面对其分别进行介绍

  • org.apache.lucene.analysis   主要对文档进行分词,将文档转换成Token,并提供了默认的实现--StandardAnalyzer,默认实现只能对英文进行分词,对中文分词可采取网上开源的分词软件如:IKAnalyzer;
  • org.apache.lucene.codecs     提供一个抽象的索引结构,并进行编码与解码;
  • org.apache.lucene.document  这里的docment对应对多个字段(Field),而一个字段是关键词组合;
  • org.apache.lucene.index  提供创建与操作索引的方法。
  • org.apache.lucene.search  对文档进行搜索
  • org.apache.lucene.store  提供独立于平台的存储方式,并提供多个实现
  • org.apache.lucene.util         提供Luence的常用的工具类

 

时间: 2024-10-19 09:51:53

初识Lucene的相关文章

初识Lucene 4.5.0 全文搜索--(二)

上一篇文章初识Lucene 4.5.0--(一)已经介绍了如何创建索引与检索索引.接下来就是删除与更新啦~ 一.删除索引. 原本3.x版本时 IndexWriter 与 IndexReader 都是有删除方法的,让我们先来看看lucene 3.6 api文档中的IndexReader的描述: 从4.0开始已经被删除了,所以现在只能用IndexWriter中的方法来进行删除.有哪些方法呢?继续看文档(lucene 4.5 api): 除了上面的六个外还有一个方法tryDeleteDocument(

初识Lucene 4.5全文搜索

近期想研究下lucene,但网络上的教程大多都是lucne 3.x版本的讲解.可是lucene版本的更新速度快的惊人,目前已经到了4.8版了,只好去查阅官方文档.虽然英文不大好,但稍微对比了下发现3.x版本至4.x版本的修改非常之大.接下来我就以4.5版来操作,分享下我对luence的初步认识. 先给大家看一张图(来至<Lucene  in  action>): 此图很形象的描述了lucene的基本流程,简而言之就是:1.创建索引:2.检索索引. 太深的道理与原理我目前也还是一知半解,所以就以

实战 Lucene,第 1 部分: 初识 Lucene (zhuan)

http://www.ibm.com/developerworks/cn/Java/j-lo-lucene1/ *************************************************** Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家族中的一个开源项目.也是目前最为流行的基于 Java 开源全文检索工具包. 目前已经

初识 Lucene .

Lucene是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 ApacheJakarta 家族中的一个开源项目.也是目前最为流行的基于 Java 开源全文检索工具包. 目前已经有很多应用程序的搜索功能是基于Lucene 的,比如 Eclipse 的帮助系统的搜索功能.Lucene能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进行索引和搜索.比如你要对一些

实战 Lucene,第 1 部分: 初识 Lucene

???Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家族中的一个开源项目.也是目前最为流行的基于 Java 开源全文检索工具包. 目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能.Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文

Lucene in action 第一章 初识Lucene

1.3 搜索程序组件 Lucene提供搜索程序的最核心模块:索引模块和搜索模块的类库. Solr基于Lucene,提供更丰富的UI和API可以直接部署和使用 下图为搜索程序的基本框架.中间黑体部分为Lucene完成的功能,也是搜索引擎的最核心部分. 搜索引擎评价: 满足基本功能:搜索结果正确显示 搜索回复时间 扩展功能:语法纠错,关键词高亮等 1.3.1索引组件 搜索引擎原理: 朴素思想:顺序搜索 问题:速度太慢 解决:对文本内容建立索引,通过索引返回结果 1.获取内容: 网页内容:爬虫工具 文

(转)实战 Lucene,第 1 部分: 初识 Lucene

Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家族中的一个开源项目.也是目前最为流行的基于 Java 开源全文检索工具包. 目 前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能.Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进

《Lucene In Action》 01 初识Lucene

基于Lucene 3.0.1 1.Lucene简单定义 Lucene是高性能.可扩展的信息检索(IR)工具库.向用户提供了简单易用的索引和搜索API,屏蔽了内部复杂而先进的信息检索技术实现过程Lucene仅仅是一个提供搜索功能的类库,你还需要根据实际情况自行完成搜索程序的其他模块(网页抓取.文档处理.服务器运行.用户界面和管理等)Lucene的核心jar包很小,只有1M左右,核心之外,存在大量的扩展模块.另外你如果寻找一些成型的网页搜索.文档处理或搜索引擎,可以在Lucene wiki的技术支持

第一章 初识Lucene

多看几遍 1.1 应对信息爆炸 1.2 Lucene 是什么 1.2.1 Lucene 能做些什么 1.2.2 Lucene 的历史 1.3 Lucene 和搜索程序组件 基本概念 索引操作 将原始数据引入可被高效查找的对照表中,以便能够对这些内容进行快速搜索. 这里的对照表的结构是什么样的?是二叉排序树还是红黑树? 索引是一个精心设计的数据结构. 1.3.1 索引组件 获取内容 建立文档 文档分析 文档索引