SpringBoot+Lucene第二篇——Lucene的流程与构建文档对象

Lucene的学习第二篇——Lucene的流程与构建文档对象

既然Lucene是实现全文检索,那么明白以下几个问题,

  1. Lucene是什么?

  2. Lucene实现全文检索的流程?

  3. 索引到底是如何创建的?(Indexing)

  4. 索引里面存放的又是什么东西?

  5. 搜索的的时候又是如何去查找索引的?(Search)
    这5个问题搞明白了,那么lucene就算入门了。
    1:lucene是什么?
    Lucene是一堆jar包,
    2:lucene的实现全文检索的流程:
    在这里插入图片描述其实就两大流程

     	1:绿色表示创建索引过程,包括:
     	采集数据创建索引(保存到索引库)
     	2:红色表示查询索引过程,包括:
     	入口提交查询请求(查询关键字)执行查询(从索引库搜索)
    

采集数据:
从互联网上、数据库、文件系统中等获取需要搜索的原始信息,如何采集数据?
1、互联网上的网页:可以使用爬虫获取数据。
2、数据库中的数据:可以直接连接数据库用SQL查询数据。
3、文件系统中的文件:可以通过I/O操作读取文件的内容。
建立索引

这是最关键的步骤也是最抽象,最难理解的,采用场景1说明

创建索引的步骤:
 获取文档(IO)
 创建文档对象
 分析文档(拆词)(使用分词器)创建索引
 扔进索引库

为了更好的理解这个步骤:
需要明白一个问题,索引库里是什么东西?
看流程图。用户根据索引查询,得到的是返回的结果。类比词典,那么索引库就是一个词典。
也就说,索引库中,既有索引,并且又有原始文档。
全文检索的内容是索引库中的内容,并没有去原始文档总找。而这个内容使我们在建立索引库的时候,将内容完完全全的复制到了索引库(理解成复制)
记住:
扔进索引库的是一个文档对象!,这个文档对象扔进索引库的时候,自动创建了索引!
文档对象是什么?(抽象)
这个文档对象就是我们构建的,一个world文件就是一个文档对象
文档对象由域组成(Field)
在这里插入图片描述
在这里插入图片描述
域field:就是描述这个对象的属性。好比描述对象的字段(但是完全不一样);
好比描述这个world的大小,内容,长度,,,都是一个域。

  1. 每个文档对象中包括多个Field(域),域只有两个属性:域名(name)和域值(value)。一个对象相当于数据库表的一条记录,一个Field相当于表中的一个字段
  2. 不同的对象可以有不同的Field,同一个对象可以有相同的Field(域名和域值都相同)(跟数据库字段完全不一样)

和数据库表类似,每个文档都有一个唯一的主键——文档id(docID)。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kone.wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值