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

 

目录

Elasticsearch介绍_全文检索

Elasticsearch介绍_倒排索引

Elasticsearch介绍_Elasticsearch的出现

Elasticsearch介绍_Elasticsearch应用场景

Elasticsearch介绍_Elasticsearch对比Solr

Elasticsearch介绍_Elasticsearch数据结构


 

Elasticsearch介绍_全文检索

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

Elasticsearch是一个全文检索服务器

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

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

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

 

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

实时学习反馈

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

A 格式和长度固定的数据

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

C 格式固定的数据

D 长度固定的数据

2. 全文检索是

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

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

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

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

Elasticsearch介绍_倒排索引

索引 

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

正排索引(正向索引)

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

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

倒排索引(反向索引) 

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

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

创建倒排索引流程:

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

实时学习反馈

1. 索引分为

A 正排索引和无序索引

B 正排索引和倒排索引

C 无序索引和有序索引

D 有序索引和倒排索引

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

A 无序索引

B 有序索引

C 正排索引

D 倒排索引 

Elasticsearch介绍_Elasticsearch的出现

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

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

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

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

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

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

实时学习反馈

1. Elasticsearch本质是一个

A python语言开发的web项目

B javascript语言开发的web项目

C java语言开发的web项目

D java语言开发的普通项目 

Elasticsearch介绍_Elasticsearch应用场景

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

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

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

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数据结构

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

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

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

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

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

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

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

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

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

实时学习反馈

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

A 文档

B 类型

C 索引

D 域

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

A 一个库

B 一张表

C 一个对象

D 一个字段 

你可能感兴趣的:(#,Elasticsearch,后端,elasticsearch,solr,中间件,全文检索)