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

news2024/9/20 18:34:44

 

目录

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 一个字段 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/733692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

休闲时光:最近上映的电影与爬虫世界,带您彻底放松!

大家好,我是安果! 周末是与亲朋好友相聚的好时机,可以选择一部大家都喜欢的电影,彻底放松,共同度过一个愉快而难忘的周末 本篇文章将介绍如何使用 Scrapy 爬取最新上映的电影 目标对象: aHR0cHM6Ly93d3cubW…

深入浅出讲解Python中的可变类型与不可变类型,以及赋值,浅拷贝与深拷贝的区别

文章目录 1、不可变数据类型2、可变数据类型3、赋值,浅拷贝与深拷贝3.1 赋值操作符 3.2 浅拷贝copy()3.3 深拷贝copy() 小结 在Python中,数据类型主要分为可变数据类型和不可变数据类型。主要的区别在于可变数据类型的值可以改变,而不可变数据…

【网络系统集成】路由器实验

1.实验名称:路由器RIP协议配置 2.实验目的 在PacketTracer中进行模拟实验,配置RIP协议,验证RIP协议更新时间及路由状态变化,加深对路由器RIP协议相关知识的理解与掌握。 3.实验内容 (1)拓扑结构图 (2)ip地址分配与端口分配

Mybatis基础总结1

Mybatis快速入门 一.Mybatis快速入门1.1 框架介绍1.2 ORM介绍1.3 原始jdbc操作(查询数据)1.4原始jdbc操作(插入数据)1.5 原始jdbc操作的分析1.6 什么是Mybatis1.7 Mybatis的快速入门1.7.1 环境搭建1.7.2编写测试代码 1.8 知识小结…

Linux进程调度

转自:深入理解Linux进程调度(0.4)_进程调度 城_城中之城的博客-CSDN博客 一、进程调度概览 进程调度是操作系统最重要的内容之一,也是学习操作系统的重点和难点。关于进程本身的实现和管理请参看《深入理解Linux进程管理》。关于进程调度,我…

阿里云ECS服务器架构X86计算_ARM_GPU/FPGA_裸金属_超级计算集群

阿里云服务器架构有什么区别?X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、超级计算集群有什么区别?阿里云服务器网分享云服务器ECS架构详细说明: 目录 阿里云服务器ECS架构说明 X86计算 ARM计算 GPU/FPGA/ASIC 弹性裸金属服务…

mysql单表查询,排序,分组查询,运算符,select,order by,group by

CREATE TABLE emp (empno int(4) NOT NULL, --员工编号ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,--员工名字job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,--员工工作mgr int(4) NULL DEFAULT NU…

json 解析chrome浏览器插件json-handle

插件地址 非常好用,平常工作中需要经常查看对象属性,展开的时候往往都是很长的数据,有了这个大大提升效率了

云计算值得学习吗

云计算值得学习吗 云计算作为一项重要的技术和商业模式,未来的发展前景非常广阔。随着企业和个人对云计算需求的增长,以及新兴技术的不断突破和创新,云计算将继续引领科技进步和社会发展,并为用户带来更多的便利和创新&#xff0…

项目配置日志的打印目录,输出日志

最近的项目需要在服务器上跑&#xff0c;配个日志方便查看。简单记录一下&#xff0c; resources下新增日志配置的xml文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10 seco…

从零开始 Spring Boot 67:JPA 中的惰性元素

从零开始 Spring Boot 67&#xff1a;JPA 中的惰性元素 图源&#xff1a;简书 (jianshu.com) 惰性加载带来的问题 在实体类之间建立关系时&#xff0c;可以选择“惰性加载”&#xff0c;比如&#xff1a; Entity public class Student {// ...OneToMany(mappedBy "stu…

基于springboot,vue网上订餐系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术 &#xff1a;VueElementUI 服务端技术&#xff1a;springbootmybatisredis 本系统分用户前台和管理后台两部分&#xff0c;项…

【Kafka】Kafka的Broker概述

【Kafka】Kafka的Broker概述 文章目录 【Kafka】Kafka的Broker概述1. Broker的工作流程1.1 Zookeeper存储的Kafka信息1.2 Broker 总体工作流程1.3 Broker重要参数 2. 节点服役和退役2.1 服役新节点2.2 退役旧节点 3. Kafka副本3.1 副本信息3.2 Leader选举流程3.3 Leader 和 Fol…

【成都】EFDC建模方法、SWAT模型高阶研修

EFDC建模方法及在地表水环境评价、水源地划分、排污口论证应用 为了定量地描述地表水环境质量与污染排放之间的动态关系&#xff0c;EFDC、MIKE、Delft3D、Qual2K等数值模型被广泛应用在环境、水务、海洋等多个领域。Environmental Fluid Dynamics Code&#xff08;EFDC&#…

[NISACTF 2022]checkin

[NISACTF 2022]checkin 直接给了源码&#xff0c;乍一看非常的简单&#xff0c;但是这题有坑。其实看注释颜色不一样&#xff0c;也能发现不对劲了。 贴一个payload&#xff0c;?ahahahahajitanglailo&%E2%80%AE%E2%81%A6Ugeiwo%E2%81%A9%E2%81%A6cuishiyuan%E2%80%AE%E2…

ARM异常处理详解

前言&#xff1a; 学习一门处理器最重要的就是掌握该处理器的指令集和异常处理。 异常概念&#xff1a; 处理器在正常执行程序时可能会遇到一些不正常的事件发生&#xff0c;这时处理器就要将当前的程序暂停下来转去处理这个异常的事件&#xff0c;异常处理后再返回到被异常打…

需求分析引言:架构漫谈(五)架构师成长之路

我研发领域也从事了一些年&#xff0c;期间也做过一些架构设计工作&#xff0c;包括C#单体转型为Java微服务、Python单体转型为Java微服务等&#xff0c; 也尝试着从自己的经验角度&#xff0c;来汇总一些知识点&#xff0c;同时描述一下如何成长为一个合格的软件架构师&#x…

权限管理系统后端实现1-SpringSecurity执行原理概述

spring security的简单原理&#xff1a; SpringSecurity有很多很多的拦截器&#xff0c;在执行流程里面主要有两个核心的拦截器 1&#xff0c;登陆验证拦截器AuthenticationProcessingFilter 2&#xff0c;资源管理拦截器AbstractSecurityInterceptor 但拦截器里面的实现需要…

IDEA+Spring Boot + MyBatis + Layui+Mysql垃圾回收管理系统源码

IDEASpring Boot MyBatis LayuiMysql垃圾回收管理系统源码 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.垃圾回收管理3.添加需要回收的垃圾4.垃圾去向管理5.申请需要打包运出的垃圾6.系统公告管理7.个人信息管理8.修改密码 三、部分代码UserMapper.javaUserControlle…

Python的网络爬虫框架-网络爬虫常用框架

Python的网络爬虫框架-网络爬虫常用框架 一、前言二、引言三、Scrapy 爬虫框架四、Crawley 爬虫框架五、PySpider 爬虫框架 一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;让我们一起来了解Python的网络爬虫框架-网络爬虫常用框架如果文章对你有帮助、欢迎关注、点…