Elasticsearch【全文检索、倒排索引、应用场景、对比Solr、数据结构】(一)-全面详解(学习总结---从入门到深化)

目录

Elasticsearch介绍_全文检索

Elasticsearch介绍_倒排索引

Elasticsearch介绍_Elasticsearch的出现

Elasticsearch介绍_Elasticsearch应用场景

Elasticsearch介绍_Elasticsearch对比Solr

Elasticsearch介绍_Elasticsearch数据结构


Elasticsearch介绍_全文检索

Elasticsearch是一个全文检索服务器

全文检索是一种非结构化数据的搜索方式

  • 结构化数据:指具有固定格式固定长度的数据,如数据库中的字段。
  • 非结构化数据:指格式和长度不固定的数据,如电商网站的商品详情。

结构化数据一般存入数据库,使用sql语句即可快速查询。但由于非结构化数据的数据量大且格式不固定,我们需要采用全文检索的方式进行搜索。全文检索通过建立倒排索引加快搜索效率。

实时学习反馈

1. 什么是非结构化数据?

A 格式和长度固定的数据

B 格式和长度不固定的数据

C 格式固定的数据

D 长度固定的数据

2. 全文检索是

A 一种非结构化数据的搜索方式

B 一种结构化数据的搜索方式

C 一种非结构化数据的保存方式

D 一种结构化数据的保存方式

Elasticsearch介绍_倒排索引

索引

将数据中的一部分信息提取出来,重新组织成一定的数据结构,我 们可以根据该结构进行快速搜索,这样的结构称之为索引。 索引即目录,例如字典会将字的拼音提取出来做成目录,通过目录 即可快速找到字的位置。 索引分为正排索引倒排索引

正排索引(正向索引)

将文档id建立为索引,通过id快速可以快速查找数据。如数据库中 的主键就会创建正排索引。

倒排索引(反向索引)

非结构化数据中我们往往会根据关键词查询数据。此时我们将数据中的关键词建立为索引,指向文档数据,这样的索引称为倒排索引。

创建倒排索引流程:

实时学习反馈

1. 索引分为

A 正排索引和无序索引

B 正排索引和倒排索引

C 无序索引和有序索引

D 有序索引和倒排索引

2. 将数据中的关键词建立为索引,指向文档数据,这样的索引称为

A 无序索引

B 有序索引

C 正排索引

D 倒排索引

Elasticsearch介绍_Elasticsearch的出现

多年前,一个刚结婚的名叫Shay的失业开发者,跟着妻子去了伦敦,他的妻子在那里学习厨师。Shay使用全文检索工具------ lucene,给他的妻子做一个食谱搜索引擎。

但Lucene的操作非常复杂,且Lucene是一个单机软件,不支持联网访问。因此 Shay基于Lucene开发了开源项目 Elasticsearch。 Elasticsearch本质是一个java语言开发的web项目,我们可以通过 RESTful风格的接口访问该项目内部的Lucene,从而让全文搜索变得简单。

从此以后,Elasticsearch成为了Github上最活跃的项目之一, Elastic公司围绕Elasticsearch提供商业服务,并开发新的特性。 Elasticsearch将永远开源并对所有人可用。

实时学习反馈

1. Elasticsearch本质是一个

A python语言开发的web项目

B javascript语言开发的web项目

C java语言开发的web项目

D java语言开发的普通项目

Elasticsearch介绍_Elasticsearch应用场景

1、2013年初,GitHub抛弃了Solr,采取Elasticsearch来做PB级的搜索。GitHub使用Elasticsearch搜 索20TB 的数据,包括13亿文件和1300亿行代码。

2、维基百科:以Elasticsearch为基础的核心搜索架构。

3、百度:百度目前广泛使用Elasticsearch作为文本数据分析,采集百度所有服务器上的各类指标数据 及用户自定义数据。目前覆盖百度内部20多个业务线(包括casio、云分析、网盟、预测、文库、 直达号、钱包、风控等),单集群最大100台机器,200个ES节点,每天导入30TB+数据

4、新浪使用ES分析处理32亿条实时日志。

5、阿里使用ES构建自己的日志采集和分析体系。

6、我们可以使用Elasticsearch实现全站搜索,线上商城系统的搜索,分析日志等功能。

实时学习反馈

1. 我们可以使用Elasticsearch实现功能

A 全站搜索

B 线上商城系统的搜索

C 分析日志

D 以上都可以

Elasticsearch介绍_Elasticsearch对比Solr

Solr也是基于Lucene的一款全文搜索引擎,下面是他们的对比。

Solr利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能;

Solr支持更多格式的数据,而Elasticsearch仅支持json文件格式;

Solr官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高级功能多由第三方插件提 供;

Solr在传统的搜索应用中表现好于Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。

目前Elasticsearch的市场占有率越来越高,Spring从2020年起也已 经停止Spring Data Solr的维护,更多的公司使用Elasticsearch作为 搜索引擎。

实时学习反馈

1. 关于Solr和Elasticsearch的对比,以下说法正确的是

A Elasticsearch利用Zookeeper进行分布式管理

B Solr仅支持json文件格式

C Elasticsearch自身带有分布式协调管理功能

D Elasticsearch在传统的搜索应用中表现好于Solr

Elasticsearch介绍_Elasticsearch数据结构

文档(Document):文档是可被查询的最小数据单元,一个 Document 就是一条数据。类似于关系型数据库中的记录的概念。

类型(Type):具有一组共同字段的文档定义成一个类型,类似于 关系型数据库中的数据表的概念。

索引(Index):索引是多种类型文档的集合,类似于关系型数据库 中的库的概念。

域(Fied):文档由多个域组成,类似于关系型数据库中的字段的 概念。

Elasticsearch跟关系型数据库中概念的对比:

注:ES7.X之后删除了type的概念,一个索引不会代表一个库, 而是代表一张表。我们课程中使用ES7.17,所以目前的ES中概 念对比为:

实时学习反馈

1. 在Elasticsearch中,是可被查询的最小数据单元

A 文档

B 类型

C 索引

D 域

2. 在Elasticsearch7之后,一个索引类似于关系型数据库中的

A 一个库

B 一张表

C 一个对象

D 一个字段

相关推荐
2401_857439695 分钟前
SpringBoot框架在资产管理中的应用
java·spring boot·后端
怀旧6666 分钟前
spring boot 项目配置https服务
java·spring boot·后端·学习·个人开发·1024程序员节
阿华的代码王国27 分钟前
【SpringMVC】——Cookie和Session机制
java·后端·spring·cookie·session·会话
infiniteWei1 小时前
【Lucene】全文检索 vs 顺序扫描,为何建立索引比逐个文件搜索更高效?
django·全文检索·lucene
infiniteWei1 小时前
【Lucene】原理学习路线
学习·搜索引擎·全文检索·lucene
德育处主任Pro1 小时前
『Django』APIView基于类的用法
后端·python·django
哎呦没3 小时前
SpringBoot框架下的资产管理自动化
java·spring boot·后端
2401_857600953 小时前
SpringBoot框架的企业资产管理自动化
spring boot·后端·自动化
NiNg_1_2347 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
Chrikk9 小时前
Go-性能调优实战案例
开发语言·后端·golang