没有合适的资源?快使用搜索试试~ 我知道了~
全文搜索Lucene&ElasticSearch-新版.doc
需积分: 5 0 下载量 80 浏览量
2021-03-31
18:12:49
上传
评论
收藏 2.59MB DOC 举报
温馨提示
试读
64页
安装及入门
资源推荐
资源详情
资源评论
1. 课程介绍
1.认识全文检索
2.Lucene 入门(掌握)
3.认识 ElasticSearch
4.ElasticSearch 基本操作(掌握)
5.Java 操作 ElasticSearch(掌握)
2. 认识全文检索
2.1.什么是全文检索
对 非结构化数据的搜索就叫全文检索,狭义的理解主要针对文本数据的搜索。
结构化数据:
业界指关系模型数据,即以关系数据库表形式管理的数据
半结构数据:
非关系模型的、有基本固定结构模式的数据,例如日志文件、 XML 文档、JSON 文档、
Email 等。
非结构化数据:
没有固定模式的数据,如 WORD、PDF、PPT、EXL,各种格式的图片、视频等。
非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维
逻辑表来表现的数据。包括所有格式的办公文档、文本、图片、XML, HTML、各类报表
图像和音频/视频信息等等
理解:可以理解为全文检索就是把没有结构化的数据变成有结构的数据,然后进行搜索,
因为有结构化的数据通常情况下可以按照某种算法进行搜索。
2.2.全文检索的特点
相关度最高的排在最前面,官网中相关的网页排在最前面; java
关键词的高亮。
只处理文本,不处理语义。 以单词方式进行搜索
比如在输入框中输入“中国的首都在哪里”,搜索引擎不会以对话的形式告诉你“在北京”
而仅仅是列出包含了搜索关键字的网页。
2.3.常见的全文检索方案
全文搜索工具包-Lucene(核心)
全文搜索服务器 ,Elastic Search(ES) / Solr 等封装了 lucene 并扩展
3. Lucene 介绍
3.1.什么是 Lucene
Lucene 是 apache 下的一个开源的全文检索引擎工具包(一堆 jar 包)。它为软件开发人员提供
一个简单易用的工具包(类库),以方便的在小型目标系统中实现全文检索的功能。
Lucene 适用于中小型项目 ,ES 适用于中大型项目(它底层是基于 lucene 实现的)
3.2.Lucene 实现全文检索架构
任何技术都有一些核心,Lucene 也有核心,而它的核心分为:索引创建,索引搜索。接下
来我们就一一的来看。
3.2.1.索引创建
将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。那么索引里面究
竟存的什么,以及如何创建索引呢?在这通过下面的例子来解答这个问题。
首先构造三个不同的句子,有长有短:
在①处分别为 3 个句子加上编号,然后进行分词,把每一个单词分解出来与编号对应放在
②处;在搜索的过程总,对于搜索的过程中大写和小写指的都是同一个单词,在这就没有
区分的必要,按规则统一变为小写放在③处;要加快搜索速度,就必须保证这些单词的排
列时有一定规则,这里按照字母顺序排列后放在④处;最后再简化索引,合并相同的单词
就得到如下结果:
通常在数据库中我们都是根据文档找到内容,而这里是通过词,能够快速找到包含他的文
档,这就是文档倒排链表。
以上就是 lucene 索引结构中最核心的部分。我们注意到关键字是按字符顺序排列的
(lucene 没有使用 B 树结构),因此 lucene 可以用二元搜索算法快速定位关键词。
3.2.2.索引搜索
就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。
比如我们要搜
索 java world 两个关键词,符合 java 的有 1,2 两个文档,符合 world 的有 1,3 两个文档,
在搜索引擎中直接这样排列两个词他们之间是 OR 的关系,出现其中一个都可以被找到,
所以这里 3 个都会出来。全文检索中是有相关性排序的,那么结果在是怎么排列的呢?
hello java world 中包含两个关键字排在第一,另两个都包含一个关键字,得到结果,
hello lucene world 排在第二,java 在最长的句子中占的权重最低排在结果集的第三。
从这里可以看出相关度排序还是有一定规则的。
1. Lucene 入门
4.Lucene-Helloworld 程序
Lucene 的索引库和数据库一样,都提供相应的 API 来便捷操作。
Lucene 中的索引维护使用 IndexWriter,由这个类提供添删改相关的操作;索引的搜索则是
使用 IndexSearcher 进行索引的搜索。
HelloWorld 代 码 如 下 , 导 入 三 个 jar 包 : lucene-analyzers-common-5.5.0.jar , lucene-core-
5.5.0.jar,lucene-queryparser-5.5.0.jar
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>5.5.0</version>
</dependency>
剩余63页未读,继续阅读
资源评论
ilovelea
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功