Lucene基本介绍

Lucene全文检索技术

  1. 介绍
    Lucene是apache软件基金会下的一个子项目。是一个成熟,免费,开放源代码的全文检索引擎工具包
    Lucene能够为文本类型的数据建立索引,只需要把数据转换成文本格式,Lucene就可以对文档进行索引和检索。常见的有word,html,pdf文档。
  2. 什么是全文检索
    (1) 索引程序:计算机通过索引程序,扫描文件中的每一个词语,建立词语与文件的对应关系,把对应关系保存到索引库中
    (2) 检索程序:计算机通过检索程序,根据用户输入的搜索关键词,在索引库中搜索目标内容
  3. Lucene下载方式
    Lucene官方网站地址:http://lucene.apache.org/

全文检索流程

1.索引和检索流程图
在这里插入图片描述

索引流程详细介绍

  1. 原始数据
    (1) 保存在关系数据库中的数据
    (2) 保存在文件上的数据
    (3) 网络上的网页文件数据
  2. 采集数据
    (1) 通过JDBC操作获取关系数据库的数据(对应关系数据库中的数据)
    (2) 通过IO流操作获取文件上的数据
    (3) 通过爬虫程序获取网络上的网页文件数据
  3. 建立文档对象
    文档对象:是非结构化数据。一个文档对象包含多个域。一个文档对象就相当于关系数据库表(结构化数据)中的一条记录,一个域相当于一个字段
    在这里插入图片描述
    结构化数据:长度固定,格式固定。
    非结构化数据:长度不固定,格式不固定
  4. 分析文档
    原始数据转换成文档对象后,使用分析器(分词器)把文档域中的内容切成一个一个的词语,为后续建立索引做准备
  5. 建立索引
    (1) 介绍:建立倒排索引(建立词语与文档的对应关系,词语在什么文档出现,出现了多少次,在什么位置出现)。把倒排索引保存到索引
  6. 实现原理
    以Lucene为例建立倒排索引:
    文件一(编号0):we like java java
    文件二(编号1):we like lucene lucene
Term(Document,Frequency)Position
we(0,1)(1,1)(0)(0)
like(0,1)(1,1)(1)(1)
java(0,2)(2,3)
lucene(1,2)(2,3)

说明:
(1) 倒排索引:建立词语与文件(文档)的对应关系,词语在什么文件出现出现几次在什么位置出现
(2) 搜索的时候:根据用户输入的搜索关键词,比如java。直接在倒排索引中就可以找到与文件的对应关系。不需要再查找全部文件,减少了搜索范围,搜索速度快

检索流程详细介绍

  1. 用户
    用户对象可以是人,也可以是程序
  2. 用户查询
    用户在搜索入口界面输入搜索关键词,执行搜索
  3. 建立查询对象
    根据用户输入的搜索关键词,比如java。建立查询对象Query,Query对象会生成查询语法。
    举例:输入bookName:java,表示搜索图书名称域中,包含有java的图书
  4. 执行查询
    根据查询对象Query和该对象生成的语法,在索引库中查找目标内容
  5. 返回查询结构
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值