Lucene_day01_介绍

Lucene的介绍

什么是Lucene?

是Apache组织下的一个开源的搜索引擎工具包(jar)

为什么要学Lucene?

如果没有索引库,在搜索的时候直接搜索数据库,当数据量庞大的情况,数据库压力变大,查询效率降低

用Lucene的API把数据写入到索引库中,搜索的时候用索引库来搜索,完全隔离了数据库,并且索引库查询效率高

流程对比:

Lucene_day01_介绍

数据查询的方式

顺序扫描法

从上往下,先查询文档再查询文档中的关键字

例如:

word文档中的搜索

倒排索引法

案例:
                新华字典
                晨————————————3000页
                先找目录(索引)中的字
                日————————————27页
                辰笔画
                晨------------3000页
                
                两个文档,每一个文档中都有数据
                搜索:do
                    坐标:
                        do(1,2)(4,8)
                        do(2,1)(2)
            先查询关键字然后根据关键字中的坐标指定文档

应用场景

  • 单机软件的搜索:word,Eclipse
  • 站内搜索:只能搜索网站内部的数据
  • 垂直领域:只专注于一个行业中的搜索
  • 专业领域:百度,Google

实际:咱们去企业中最常用的是站内搜索

相关术语

全文检索(全文索引)

计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置

当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式

Lucene

只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进行索引和搜索

官网

http://lucene.apache.org/

  • Apache组织下的一个开源的搜索引擎工具包(jar)
  • 是java语言开发的
  • 不能独立运行,不是系统,但是jar能制造系统

搜索引擎

  • 是搜索系统
  • 能独立运行!能放在服务器中独立运行
  • 基于Lucene开发的

索引和搜索流程图

Lucene_day01_介绍

1、绿色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括:

确定原始内容即要搜索的内容à获得文档à创建文档à分析文档à索引文档

2、红色表示搜索过程,从索引库中搜索内容,搜索过程包括:

用户通过搜索界面à创建查询à执行搜索,从索引库搜索à渲染搜索结果

Lucene_day01_介绍