一、Lucene中存的什么内容
Lucene中存的就是一系列的二进制压缩文件和一些控制文件,它们位于计算机的硬盘上,这些内容统称为索引库 ,索引库有二部份组成:
- 原始记录
a)存到索引库中的原始文本,例如:百知教育是一家NB的IT培训机构 - 词汇表
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的流程图
- 什么是索引库
索引库是Lucene的重要的存储结构,它包括二部份:原始记录表,词汇表
原始记录表: 存放的是原始记录信息,Lucene为存入的内容分配一个唯一的编号(索引号)
词汇表: 存放的是经过分词器拆分出来的词汇和该词汇在原始记录表中的编号 - 为什么要将索引库进行优化(4.4 自动优化)
在默认情况下,向索引库中增加一个Document对象时,索引库自动会添加一个扩展名叫*.cfs的二进制压缩文件,如果向索引库中存Document对象过多,那么*.cfs也会不断增加,同时索引库的容量也会不断增加,影响索引库的大小。// 执行索引优化 IndexWriter.primit();
操作流程图如下:
1.搜索结果高亮
- 什么是搜索结果高亮
i.就是搜索的时候将关键字的字符用红色显示
2. 搜索结果摘要
- 什么是搜索结果摘要
i.如果搜索结果内容太多,我们只想显示前几个字符, 必须与高亮一起使用
3.索引权重值修改
- 查询结果靠前展示
四、Lucene的应用场景
Lucece不能用在互联网搜索(即像百度那样),只能用在网站内部的文本搜索,但思想是相通的。
五、Lucene的作用
- SQL只能针对数据库表搜索,不能直接针对硬盘上的文本搜索
- SQL没有相关度排名
- SQL搜索结果没有关健字高亮显示
- SQL需要数据库的支持,数据库本身需要内存开销较大,例如:Oracle
- SQL搜索有时较慢,尤其是数据库不在本地时,超慢,例如:Oracle
下一篇::第一个lucene程序
或下一篇:手写Lucene工具类的简单封装与使用