Lucene的原理与基本使用

一、Lucene中存的什么内容

Lucene中存的就是一系列的二进制压缩文件和一些控制文件,它们位于计算机的硬盘上,这些内容统称为索引库 ,索引库有二部份组成:

  1. 原始记录
    a)存到索引库中的原始文本,例如:百知教育是一家NB的IT培训机构
  2. 词汇表
    a)按照一定的分词策略(即分词器:Analyzer),将原始记录中的每个字符拆分后,存入一个供将来搜索的表中
    3.在这里插入图片描述

二、使用Lucene的准备工作

  • 步一:创建javaweb工程,取名叫lucene-day01
  • 步二:导入Lucene相关的jar包
    lucene-core-4.4.jar【Lucene核心】
    lucene-analyzers-4.4.jar【分词器】 IK/或者使用Paoding分词器
    lucene-highlighter-4.4.jar【Lucene会将搜索出来的字,高亮显示,提示用户】
    lucene-memory-4.4.jar【索引库优化策略】
  • 步三:创建包结构
    baizhi.lucene.entity
    baizhi.lucene.firstLucene ……
  • 步四:创建JavaBean类
    在这里插入图片描述
  • 步五:创建FirstLucene.java类,编写createIndexDB()和findIndexDB()二个业务方法 (如下图)
    在这里插入图片描述

三、书写代码使用Lucene的流程图

  1. 什么是索引库
    索引库是Lucene的重要的存储结构,它包括二部份:原始记录表,词汇表
    原始记录表: 存放的是原始记录信息,Lucene为存入的内容分配一个唯一的编号(索引号)
    词汇表: 存放的是经过分词器拆分出来的词汇和该词汇在原始记录表中的编号
  2. 为什么要将索引库进行优化(4.4 自动优化)
    在默认情况下,向索引库中增加一个Document对象时,索引库自动会添加一个扩展名叫*.cfs的二进制压缩文件,如果向索引库中存Document对象过多,那么*.cfs也会不断增加,同时索引库的容量也会不断增加,影响索引库的大小。
    //  执行索引优化
    	IndexWriter.primit();
    
操作流程图如下:

在这里插入图片描述

1.搜索结果高亮
  • 什么是搜索结果高亮
    i.就是搜索的时候将关键字的字符用红色显示
    在这里插入图片描述
2. 搜索结果摘要
  • 什么是搜索结果摘要
    i.如果搜索结果内容太多,我们只想显示前几个字符, 必须与高亮一起使用
    在这里插入图片描述
3.索引权重值修改
  • 查询结果靠前展示
    在这里插入图片描述

四、Lucene的应用场景

Lucece不能用在互联网搜索(即像百度那样),只能用在网站内部的文本搜索,但思想是相通的。

五、Lucene的作用

  1. SQL只能针对数据库表搜索,不能直接针对硬盘上的文本搜索
  2. SQL没有相关度排名
  3. SQL搜索结果没有关健字高亮显示
  4. SQL需要数据库的支持,数据库本身需要内存开销较大,例如:Oracle
  5. SQL搜索有时较慢,尤其是数据库不在本地时,超慢,例如:Oracle

下一篇::第一个lucene程序
或下一篇:手写Lucene工具类的简单封装与使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值