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

lucene学习总结1

阅读更多
lucene的原理、索引概要过程

lucene是一个全文搜索框架。
数据库也能搜索,为什么要用lucene?主要是因为速度快。
lucene采用倒排的方式进行索引。

倒排的原理:
将信息分割成一个个关键词,并附以该关键词的位置。
关键词--位置之间形成一个对应关系。
n个关键词--位置,就形成一个索引表。
搜索时,通过查找索引表中的关键字。就能迅速找出所在位置。
关键词的数量会随索引信息的量而增长,但到了一定程度,表的增长就会很少。
(1GB信息,关键词表大约为5MB)

lucene实际上只有两个功能--索引、搜索。
索引:给它提供一堆字符串,让它建立索引。
搜索:提供关键词,让lucene定位所在的位置。

lucene以文档为单位进行索引。

主要层次结构如下:
Field->Document->IndexWriter->Directory

Field是可搜索数据的最小单位。
Field有多个构造函数,但本质上就是一个name-value,加以上3个属性的组合。
1.索引方式
ANAYLZED 索引、分词
ANAYLZED_NO_NORMS
NO 不索引
NOT_ANAYLZED 索引、不分词
NOT_ANAYLZED_NO_NORMS
2.是否存储(YES,NO)
3.TermVector

属性怎么组合?以图书索引为例子:
书号: 索引、存储、不分词
书名 索引、存储、分词
作者 索引、存储、不分词
出版日期: 不索引、存储、不分词
摘要: 索引、不存储、分词
价格: 不索引、存储、不分词

原则就是:能给用户搜索字段的就索引、需要在搜索结果显示出来就存储、允许模糊匹配的就分词。

Document:文档是索引和搜索的单元,由多个Field组成。

IndexWriter;创建、维护索引,以Document为单位进行操作。
IndexWriter的构造方法主要有2个参数:
1.Directory
抽象的目录,用于存放索引
2.Analyzer
字符串解析器(说白了就是分词器)

IndexWriter的工作就是:
1.首先使用Anaylzer对Document中标记为“分词”的Field
2.把所有Document的Field进行索引,并写到目录
分享到:
评论

相关推荐

    Lucene 3.0 原理与代码分析PDF

    Lucene学习总结之三:Lucene的索引文件格式(1) Lucene学习总结之三:Lucene的索引文件格式(2) Lucene学习总结之三:Lucene的索引文件格式(3) Lucene学习总结之四:Lucene索引过程分析(1) Lucene学习总结之...

    24 Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser(1).doc

    24 Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser(1)

    lucene学习总结文档

    lucene是一个全文搜索框架,它提供接口,由用户自由实现。 本资源为对lucene的学习+收集

    lucene学习总结

    **Lucene学习总结** 在深入理解Lucene之前,我们首先需要了解什么是全文检索。全文检索是一种从大量文本数据中快速查找所需信息的技术。它通过建立索引来实现高效的搜索,而Lucene正是Java环境下最著名的全文搜索...

    lucene学习总结_博客记录1

    1. 总论 全文检索是通过索引机制,快速找到文档中包含特定关键词的过程。Lucene 的设计目标是使开发者能够轻松地构建全文搜索引擎。它采用了倒排索引(Inverted Index)的概念,这种索引结构可以高效地定位含有特定...

    Lucene学习源码.rar

    本文将主要围绕Java Lucene进行深入探讨,并基于提供的“Lucene学习源码.rar”文件中的“Lucene视频教程_讲解部分源码”展开讨论。 一、Lucene核心概念 1. 文档(Document):Lucene中的基本单位,用于存储待检索...

    Lucene学习总结

    1. 分词:Lucene使用分析器(Analyzer)将原始文本分解为有意义的单元,如单词或短语。在示例中,使用了`MMAnalyzer`,它可能是自定义或特定语言的分析器。分析器可以处理诸如词汇规范化(lowercasing)、去除停用词...

    lucene学习全方面剖析总结

    ### Lucene 学习全方面剖析总结 #### Lucene 原理与应用概述 Lucene 是一个高性能、全文检索的开源库,被广泛应用于各种搜索引擎的开发之中。本篇文章旨在全面剖析 Lucene 的核心技术和应用场景,帮助读者深入理解...

    Lucene 3.2学习总结.ppt

    前段时间学习lucene的总结,因为版本已经更新到了3.2,一些API有更新,很多现有的网页上找到的教程都跑不了。

    搜索引擎lucene学习资料

    在"lucene总结.chm"文件中,可能包含了网友们对Lucene的详细学习笔记和实践心得。CHM是Microsoft编写的帮助文件格式,通常包含HTML页面和相关资源,便于用户查阅和学习。在这里,读者可以找到关于Lucene的API用法、...

    Lucene学习总结之一:全文检索的基本原理[归纳].pdf

    1. **词项频率(Term Frequency, TF)**:记录每个文档中每个术语出现的次数,用于计算文档与查询的相关性。 2. **逆文档频率(Inverse Document Frequency, IDF)**:衡量一个术语在整个文档集中的稀有程度,有助于...

    Lucene学习工具包.zip

    **Lucene学习工具包** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。这个"Lucene学习工具包.zip"包含了学习Lucene所需的重要资料和资源,旨在帮助开发者深入理解和掌握Lucene的核心概念、功能...

    Lucene5学习之增量索引(Zoie)

    总结起来,Lucene5学习之增量索引(Zoie)涉及到的关键技术点包括: 1. 基于Lucene的增量索引解决方案:Zoie系统。 2. 主从复制架构:Index Provider和Index User的角色。 3. 数据变更追踪:通过变更日志实现增量索引...

    lucene基础总结

    ### Lucene基础知识总结 #### 一、Lucene简介与核心概念 **Lucene**是一款高性能、全文搜索引擎库,由Java...以上内容总结了在学习和使用Lucene过程中的关键知识点,希望能帮助读者更好地理解和应用Lucene的技术。

    Lucene5学习之SpellCheck拼写纠错

    **标题:“Lucene5学习之SpellCheck拼写纠错”** 在深入探讨Lucene5的SpellCheck功能之前,首先需要理解Lucene是什么。Lucene是一个开源的全文检索库,由Apache软件基金会开发,它提供了高性能、可扩展的文本搜索...

    Lucene2.4入门总结

    **Lucene 2.4 入门指南** Lucene 是一个高性能、全文本搜索库,由 Apache 软件...随着对 Lucene 更深入的学习,你将能够探索更多的高级特性,如近实时搜索、分布式索引和更复杂的查询语法,以满足更复杂的应用场景。

    Lucene5学习之Highlighte关键字高亮

    《Lucene5学习之Highlighter关键字高亮》 在信息技术领域,搜索引擎的使用已经变得无处不在,而其中的关键技术之一就是如何有效地突出显示搜索结果中的关键字,这就是我们今天要探讨的主题——Lucene5中的...

    Lucene3.0原理与代码分析完整版.docx

    在Lucene学习总结之二中,我们看到,Lucene的核心组件包括Analyzer(分析器)、Document(文档对象)、Field(字段)、IndexWriter(索引写入器)和Searcher(搜索器),它们协同工作以实现高效的信息检索。...

Global site tag (gtag.js) - Google Analytics