`

Lucene学习笔记之三:全文搜索详解

 
阅读更多

全文搜索详解主要是对其的组成部分和流程做一个详细的说明,有助于我们接下来学习lucene。

 

Lucene学习笔记之一:信息检索与全文检索这篇文章中,我们已经说过,全文搜索是按索引来找,效率高(从字典的索引找,再找到哪一页,效率会高),也就是要建立索引,然后进行搜索的过程。

Lucene学习笔记之二:lucene是什么这篇文章中介绍了lucene是什么,也就是为了更好的进行建立索引和搜索。

 

在全文搜索工具中,都是由这样的三部分组成:索引部分、分词部分、搜索部分。为什么是由这三部分组成呢?我们来想一想,为了要提交检索的效率,得建立索引;从哪来的索引,必须对资源(文档,文章)进行分词;搜索更不用说了

 

全文检索中建立索引与进行检索的流程

建立索引,就是对待搜索的信息进行一定的分析,并将分析结果按照一定的组织方式存储起来,通常将这些结果存储在文件中。存储分析结果的文件的集合就是索引。在查询时,先从索引中查找,由于索引是按照一定的结构组织的,所以查询的速度非常快。

为提供检索的功能,信息检索系统会事先做一些准备工作:信息的采集与加工。

  1. 信息采集:把信息源的信息拷贝到本地,构成待检索的信息集合。(信息源可以是互联网中的网页、硬盘中的txt、doc、pdf等格式的电子文档,或是文件系统上的文件等等)。

  2. 信息加工:为采集到本地的信息编排索引,为查询做好准备。

流程如下:


分词器

分词器,对文本资源进行切分,将文本按规则切分为一个个可以进行索引的最小单位(关键词)。

建立索引和进行搜索时都要用到分词器。为了保证能正确的搜索到结果,在建立索引与进行搜索时使用的分词器应是同一个。


索引文件结构

索引库是一组文件的集合。


索引文件的检索:

索引表规模相对较小,文档集合规模较大。进行检索时,先从检索索引表开始,然后找到相对应的文档。如果查询中仅包含一个关键词,则在索引表中找到该单词,并取出他对应的文档就可以了。如果查询中包含多个关键词,则需要将各个关键字检索出的记录进行合并。

 

索引文件的维护:

维护索引用三个操作:插入、删除和更新文档。但是更新操作需要较高的代价,因为文档修改后(即使是很小的修改),就可以会造成文档中的很多的关键词的位置发生了变化,这是需要频繁的读取和修改记录,这种代价是相当高的。因此,一般不进行更新操作,而是使用“先删除,后创建”的方式代替更新操作。


今天说写到这里,下节见。

 

本文链接:Lucene学习笔记之三:全文搜索详解,本文由huangyineng原创,转载请注明出处

分享到:
评论

相关推荐

    Lucene 3.0 原理与代码分析PDF

    Lucene学习总结之一:全文检索的基本原理 Lucene学习总结之二:Lucene的总体架构 Lucene学习总结之三:Lucene的索引文件格式(1) Lucene学习总结之三:Lucene的索引文件格式(2) Lucene学习总结之三:Lucene的...

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

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

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

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

    Lucene 3.0 原理与代码分析

    本系列文章将详细描述几乎最新版本的Lucene的基本原理和...Lucene学习总结之一:全文检索的基本原理 http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623594.html Lucene学习总结之二:Lucene的总体架构 ...

    Lucene 3.0 原理与代码分析完整版

    1.13 Lucene学习总结之七:Lucene搜索过程解析(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 1.14 Lucene学习总结之七:Lucene搜索过程解析(3) . . . . . . . . . . . . ....

    lucene-core-7.7.0-API文档-中文版.zip

    赠送jar包:lucene-core-7.7.0.jar; 赠送原API文档:lucene-core-7.7.0-javadoc.jar; 赠送源代码:lucene-core-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.7.0.pom; 包含翻译后的API文档:lucene...

    lucene学习lucene学习

    lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习...

    本人的Lucene2.9学习笔记

    本人的Lucene2.9学习笔记 本人的Lucene2.9学习笔记 本人的Lucene2.9学习笔记 本人的Lucene2.9学习笔记本人的Lucene2.9学习笔记本人的Lucene2.9学习笔记 本人的Lucene2.9学习笔记

    lucene学习笔记

    lucene学习笔记,lucene入门必备材料

    【大搜集:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    lucene学习笔记 1 .txt lucene学习笔记 2.txt lucene学习笔记 3 .txt lucene入门实战.txt Lucene 的学习 .txt Lucene-2.0学习文档 .txt Lucene入门与使用 .txt lucene性能.txt 大富翁全文索引和查询的例子...

    lucene-sandbox-6.6.0-API文档-中文版.zip

    赠送jar包:lucene-sandbox-6.6.0.jar; 赠送原API文档:lucene-sandbox-6.6.0-javadoc.jar; 赠送源代码:lucene-sandbox-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-sandbox-6.6.0.pom; 包含翻译后的API...

    Lucene 3.6 学习笔记

    第三章 搜索功能 8 3.1 简单搜索 8 (1) 创建IndexReader 8 (2) 创建IndexSearcher 8 (3) 创建Term和TermQuery 9 (5) 根据TopDocs获取ScoreDoc 9 (6) 根据ScoreDoc获取相应文档 9 3.2 其他搜索 9 (1) 范围查询...

    Lucene全文搜索_LuceneJava全文搜索_

    Lucene实现全文搜索,支持英文、模糊和智能查询

    Lucene学习笔记.doc

    很好的Lucene学习入门资料。lucene是纯java开发的,支持索引的建立和搜索

    Lucene笔记:全文检索的实现机制

    对于中文用户来说,最关心的问题是其是否支持中文的全文检索。但通过后面对于Lucene的结构的介绍,你会了解到由于Lucene良好架构设计,对中文的支持只需对其语言词法分析接口进行扩展就能实现对中文检索的支持。

    lucene-6.5.0工具包

    官网的lucene全文检索引擎工具包,下载后直接解压缩即可使用

    lucene文档笔记详解

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎

    lucene使用总结笔记

    lucene使用总结笔记lucene使用总结笔记lucene使用总结笔记lucene使用总结笔记lucene使用总结笔记

Global site tag (gtag.js) - Google Analytics