`
zcw_java
  • 浏览: 304326 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Lucene基础知识

 
阅读更多
Lucene包结构
1、org.apache.lucene.analysis 对需要建立索引的文本进行分词、过滤等操作, 语言分析器,
主要用于的切词Analyzer 是一个抽象类,管理对文本内容的切分词规则。
2、org.apache.lucene.analysis.standard 是标准分析器
3、org.apache.lucene.document 提供对Document 和Field 的各种操作的支持。索引存储时的
文档结构管理,类似于关系型数据库的表结构。Document 相对于关系型数据库的记录对象,
Field 主要负责字段的管理。
4、org.apache.lucene.index 是最重要的包,用于向Lucene 提供建立索引时各种操作的支持。
索引管理,包括索引建立、删除等。索引包是整个系统核心,全文检索的根本就是为每个切
出来的词建索引,查询时就只需要遍历索引,而不需要去正文中遍历,从而极大的提高检索
效率。
5、org.apache.lucene.queryParser 提供检索时的分析支持。查询分析器,实现查询关键词间的
运算,如与、或、非等。
6、org.apache.lucene.search 负责检索。检索管理,根据查询条件,检索得到结果。
7、org.apache.lucene.store 提供对索引存储的支持。数据存储管理,主要包括一些底层的I/0
操作。
8、org.apache.lucene.util 提供一些常用工具类和常量类的支持

原理和工作方式
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简介与核心概念 **Lucene**是一款高性能、全文搜索引擎库,由Java语言编写。它提供了一套完整的文本索引与搜索功能,被广泛应用于各种需要进行高效文本搜索的应用场景之中...

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

    这份PPT可能包含对Lucene基础知识的快速概览,如Lucene的主要特点、基本用法,以及适合初学者的示例代码。它可能以简洁易懂的方式解释Lucene的关键概念,对于快速入门Lucene是非常有价值的资源。 总的来说,这个...

    Lucene In Action 第二版 高清中文版+附书源代码

    1. **Lucene基础知识**:介绍Lucene的基本概念,如文档、字段、术语、倒排索引和查询解析,以及如何创建一个基本的Lucene应用。 2. **索引构建**:涵盖如何将结构化和非结构化数据转化为可搜索的索引,包括分词器的...

    基于lucene技术的增量索引

    Lucene基础知识** Lucene首先需要理解的是它的核心概念,包括文档(Document)、字段(Field)、术语(Term)和倒排索引(Inverted Index)。每个文档由多个字段组成,字段内包含文本内容。Lucene通过分析这些文本...

    Lucene In Action

    1. **Lucene基础知识**:Lucene的核心概念包括文档、字段、术语和倒排索引。文档是存储信息的基本单元,字段是文档的组成部分,而术语是经过分词后的单词。倒排索引是Lucene实现高效搜索的关键,它将每个术语与包含...

    基于Lucene的搜索引擎

    ### Lucene基础知识 1. **索引构建**:Lucene的核心功能是创建索引。它将非结构化的文本数据(如网页内容)转换为结构化的、可搜索的表示形式。索引过程包括分词(Tokenization)、词干提取(Stemming)、停用词...

    lucene基础介绍

    ### Lucene基础知识详解 #### 一、Lucene简介 Lucene是一个高性能、全功能的文本搜索引擎库,由Java编写而成。它提供了构建全文检索应用程序所需的完整功能,包括文本索引和搜索的能力。Lucene的核心是索引和搜索...

    Lucene搜索引擎 JSP + JAVA

    Lucene基础知识** Lucene的核心功能包括文本分析、索引构建和查询解析。它首先对输入的文档进行分词,然后将这些词语转换为倒排索引,便于快速查找。倒排索引是一种数据结构,它允许快速定位到包含特定词语的文档。...

    基于LUCENE的搜索引擎的设计与实现源代码

    一、LUCENE基础知识 LUCENE的核心概念主要包括文档(Document)、字段(Field)、索引(Index)和查询(Query)。文档是信息的基本单位,可以包含多个字段,如标题、内容等;字段则定义了文档的结构,每个字段可以...

    lucene 入门资料包

    ### 一、Lucene基础知识 1. **全文检索**: Lucene的主要功能是实现文本的全文检索。它能够快速地查找和排序文档中的关键词,支持模糊搜索和布尔查询。 2. **索引构建**: Lucene通过分析文本并创建倒排索引来实现...

    lucene in aciton (英文版)

    虽然这本书出版时间较早,但仍然是学习Lucene基础知识的重要资源之一。作者Otis Gospodnetic与Erik Hatcher都是Lucene社区的核心贡献者,他们在本书中提供了深入浅出的讲解和实用案例。 #### 二、Lucene简介 1. **...

    Lucene in Action 2nd Edition MEAP Jun 2010

    #### 二、Lucene基础知识 **1. 了解Lucene** - **信息检索术语介绍**:本书首先引入了一些基本的信息检索术语,如索引(Index)、文档(Document)、字段(Field)等,帮助读者快速理解Lucene的工作原理。 - **现代搜索...

    lucene基础jar包

    "lucene基础jar包"指的是包含Lucene核心组件的基础Java档案(JAR)文件集合,这些文件是构建基于Lucene的搜索应用所必需的。 Lucene 的核心功能包括: 1. **索引创建**:Lucene 提供了对文本数据进行高效索引的...

    Lucene in Action 2nd_Edition.doc

    综上所述,《Lucene in Action》第二版不仅是一本全面介绍Lucene基础知识和技术细节的书籍,还包含了大量实用的案例研究和实践经验分享,对于希望深入了解和运用Lucene进行搜索系统开发的读者来说,是一本非常有价值...

    Lucene初级教程

    ### Lucene基础知识详解 #### 一、Lucene简介 **1.1 什么是Lucene** Lucene是一款高性能、全文检索的开源搜索引擎库,由Java语言编写。与Baidu.com或Google Desktop这类直接使用的搜索引擎不同,Lucene更像是一个...

    Lucene in action 2nd Edition MEAP(英文版第二版)

    1. **Lucene基础知识**:介绍Lucene的基本概念,如索引、查询解析、评分机制和文档存储。读者将了解到如何创建、更新和删除索引,以及如何设计高效的查询策略。 2. **索引构建与优化**:详述如何有效地构建和优化...

    lucene手册

    ### Lucene基础知识与应用 #### 一、Lucene概述 Lucene是一款高性能、全功能的文本搜索引擎库,它为开发者提供了构建全文检索应用程序所需的工具。Lucene是用Java语言编写的,因此可以轻松地集成到Java应用程序中...

    lucene2.4+nutch学习笔记三:lucene 在多个文本文档里找出包含一些关键字的文档

    一、Lucene基础知识 Lucene的核心功能包括文档的索引和搜索。它将文本数据转换为倒排索引,使得对关键词的搜索变得快速。在Lucene 2.4中,主要包含以下组件: 1. **Analyzer**:负责文本分词,是语言处理的关键...

    第一个lucene的简单实例....

    **Lucene基础知识** 1. **安装与引入**: 在Java项目中使用Lucene,首先需要下载并添加Lucene的jar包到项目的类路径中,或者使用Maven或Gradle等构建工具进行依赖管理。 2. **索引文档**: 创建索引是Lucene的核心...

Global site tag (gtag.js) - Google Analytics