一.执行流程

0.图解

Lucene的快速入门

Lucene的快速入门

1.创建索引

(1)获取原始文档

基于那些文档进行搜索,那就是原始文档。

通过爬虫可以获取原始文档。

(2)构建文档对象

对应每一个原始文档,并创建一个document对象。

一个document对象可以有多个域(field)。

域中保存的就是原始文档的属性。

其中属性包含域的名称和域的值。

每个文档都有唯一的编号,就是文档id。

(3)分析文档

就是分词的过程。

1.将根据空格将字符串进行分隔,得到一个单词列表。

2.把单词统一变成小写。

3.去除标点符号。

4.去除停用词。停用词指的是无意义的词。

5.每个关键词封装成一个Term对象。Term对象包含一个关键词所在的域,一个关键词本身。

注意:不同的域拆分出相同的关键词是不同的Term对象。

(4)创建索引

基于关键词列表来创建一个索引。保存到索引库中。

索引库内含:

  • 索引
  • document对象
  • 关键词和文档的对应关系

通过词语找文档,这种索引结果称之为倒排索引结构。

2.查询索引

(1)用户查询接口

用户输入查询条件的地方。

(2)把关键词封装成一个查询对象

需要包含俩个条件

条件一:查询的域

条件二:查询的关键词

(3)执行查询

根据要查询的关键词到对应的域上进行搜索。

找到关键词,根据关键词找到对应的文档。

(4)渲染结果

根据文档的id找到文档对象。

根据关键词进行高亮显示,分页处理等。

二.入门程序

1.创建索引

(1)环境

下载Lucene

https://lucene.apache.org/

安装lucene的jdk版本不低于1.8。

链接:https://pan.baidu.com/s/1QhoQO1Zjl57lKX1KsfXzjQ

提取码:aq4r

Lucene的快速入门

(2)工程搭建

  1. 创建一个java工程
  2. 添加jar包

lucene-analyzers-common-7.4.0.jar

lucene-core-7.4.0.jar

commons-io.jar

(3)步骤

1.创建一个Director对象,指定索引库的位置。F:\temp

2.基于Director对象创建一个IndexWriter对象。

3.读取磁盘上的原始文件,对应每个文件创建一个文档对象。

4.向文档对象添加域。

5.把文档对象写到索引库。

6.关闭indexwriter对象。

(4)范例

第一步导入依赖

Lucene的快速入门

第二步LuceneFirst类

Lucene的快速入门

Lucene的快速入门

Lucene的快速入门

2.使用Luke查询索引库,要求jdk版本1.9

(1)使用说明

Lucene的快速入门

(2)索引库信息页

Lucene的快速入门

(3)文件信息页

Lucene的快速入门

(4)域的信息页

Lucene的快速入门

(5)搜索信息页

Lucene的快速入门

3.查询索引库

(1)步骤

1.创建一个Director对象,指定索引库的位置。

2.创建一个IndexReader对象。

3.创建一个IndexSearcher对象,构造方法参数中的参数IndexReader对象。

4.创建一个Query对象。TeamQuery。

5.执行查询,得到一个TopDocs对象。

6.取出查询结果的总记录数。

7.取文档列表。

8.打印文档中的内容。

9.关闭IndexReader对象。

(2)范例

Lucene的快速入门

三.源码

lucene.rar

相关文章:

  • 2021-10-25
  • 2021-05-17
  • 2021-04-15
  • 2021-12-09
  • 2021-09-09
  • 2021-10-26
  • 2021-10-08
  • 2021-10-22
猜你喜欢
  • 2021-11-27
  • 2021-10-12
  • 2021-12-02
  • 2021-07-02
  • 2022-12-23
  • 2021-10-18
  • 2021-09-20
相关资源
相似解决方案