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

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

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

相关文章

libvirt 热迁移流程及参数介绍

01 热迁移基本原理 1.1 热迁移概念 热迁移也叫在线迁移,是指虚拟机在开机状态下,且不影响虚拟机内部业务正常运行的情况下,从一台宿主机迁移到另外一台宿主机上的过程。 1.2 虚拟机数据传输预拷贝和后拷贝 预拷贝(pre-copy): …

Windows如何恢复已删除的Word文档?

案例:可以恢复已删除的Word文档吗? “大家好,我遇到了一个问题,需要大家的帮助。昨天我编辑了一个Word文档并保存到了桌面上,但当我今天再次打开电脑时,它就不见了!昨天工作完成后&#xff…

Sentinel 规则详解

Sentinel 规则 流控规则 flow1、QPS流控2、并发线程数流控3、流控模式4、流控效果 熔断(降级)规则 degrade1、慢调用比例2、异常比例3、异常数 热点规则 param-flow授权规则 authority1、应用场景2、自定义来源3、授权规则配置 系统规则 前言&#xff1a…

JMeter进行WebSocket压力测试

背景 之前两篇内容介绍了一下 WebSocket 和 SocketIO 的基础内容。之后用 Netty-SocketIO 开发了一个简单的服务端,支持服务端主动向客户端发送消息,同时也支持客户端请求,服务端响应方式。本文主要想了解一下服务端的性能怎么样,…

4.6.tensorRT基础(1)-实际模型上onnx文件的各种操作

目录 前言1. onnx1.1 读取节点1.2 修改节点1.3 替换节点1.4 删除节点1.5 修改input和output1.6 预处理的接入 总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍&#…

【深度学习】神经网络初学者指南

一、说明 这是一篇对神经网络的泛泛而谈的文章,我的意见是,先知道框架,而后知道每一个细节,这是学习人工智能的基本路线。本文就神经网络而言,谈到一些基础概念,适应于初学者建立概念。 二、神经网络定义 神…

计算机网络————网络层

文章目录 网络层设计思路IP地址IP地址分类IP地址与硬件地址 协议ARP和RARPIP划分子网和构造超网划分子网构造超网(无分类编址CIDR) ICMP 虚拟专用网VPN和网络地址转换NATVPNNAT 网络层设计思路 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数…

【MQTT】Esp32数据上传采集:最新mqtt插件(支持掉线、真机调试错误等问题)

前言 这是我在Dcloud发布的插件-最完整Mqtt示例代码(解决掉线、真机调试错误等问题),经过整改优化和替换Mqtt的js文件使一些市场上出现的问题得以解决,至于跨端出问题,可能原因有很多,例如,合法…

<数据结构>并查集

目录 并查集概念 合并 查找集合的数量 并查集类代码实现 并查集概念 并查集和堆一样,都是通过数组来实现树的节点映射,不过并查集作用是,把一堆数据分为不同的几个小集合 不过并查集是森林的概念,并查集的学习可以帮助我们去更…

IDEA中侧边栏没有git commit模块,如何恢复?

一、修改之前 侧边栏没有git commit模块 二、修改之后 侧边栏恢复了git commit模块 三、下面是恢复教程 1.中文版 打开 文件 -> 设置 -> 版本控制 -> 提交 -> 勾选 【使用非模式提交界面】 -> 点击【确定】 2.英文版 打开 file -> Settings -> Version Co…

同步和异步的区别

同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是处于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令; 异步,执行完函数或方法后,不必阻塞性地等待返回…

Linux与Windows:操作系统的比较与技巧分享

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

【数学建模】国赛真题分析 2012 A题 葡萄酒的评价

2012 A题 葡萄酒的评价 优秀论文地址: 链接:https://pan.baidu.com/s/19WGpybgM6RncxTYhx61JRA?pwdvl22 提取码:vl22 –来自百度网盘超级会员V6的分享 确定葡萄酒质量时一般是通过聘请一批有资质的评酒员进行品评。每个评酒员在对葡萄酒进…

计讯物联网关型水利遥测终端机TY910确保闸站自动化监测长效运行

闸站是我国水利建设工程的重要组成部分,具备调度水源、防洪排涝、灌溉等能力,在农业、水路运输、养殖业等行业领域起着关键作用,进而解决区域水资源不均衡的问题,促进水资源多方面的利用。当前,我国闸站存在数量多、分…

线性代数 4 every one(线性代数学习资源分享)

Linear Algebra 4 Every One 版权说明,以下我分享的都是一个名叫Kenji Hiranabe的日本学者,在github上分享的,关于Gilbert Strang教授所撰写的《Linear Algebra for Everyone》一书的总结,更像是一个非常精美的线性代数手册&#…

.net core 2.1 简单部署IIS运行

netcore的项目不像netFramework那么方便部署到iis还是要费点功夫的 比如我想把这个netcore2.1的项目部署到iis并运行: 按照步骤走: 一、确认自己的netcore环境 1、需要安装下面3个环境包(如果电脑已安装请忽略) 检查是否安装cmd命令:cmd&…

go mod vendor简明介绍

Go 语言在 go 1.6 版本以后编译 go 代码会优先从 vendor 目录先寻找依赖包,它具有以下优点: 复制依赖:go mod vendor 会把程序所依赖的所有包复制到项目目录下的vendor 文件夹中,所以即使这些依赖包在外部源(如 GitHu…

OpenCV中掩膜(Mask)、setTo()、copyTo()、clone()、inRange()的定义与使用

文章目录 1、掩膜(Mask)是什么(1)从物理的角度来看:(2)图像处理中的掩膜Mask(3)掩膜的用法:(4)掩膜Mask 的运算: 2、setTo()函数:将图…

flutter开发实战-dio文件下载实现

flutter开发实战-dio文件下载实现 在开发中,需要下载文件,这里使用的是dio dio 是一个强大的 Dart HTTP 请求库,支持全局配置、Restful API、FormData、拦截器、 请求取消、Cookie 管理、文件上传/下载、超时以及自定义适配器等。 一、引入d…

JS脚本 - 批量给所有指定标签追加Class属性

JS脚本 - 批量给所有指定标签追加Class属性 前言一. 脚本二. 测试运行 前言 公司里我们有个应用引入了UBT埋点,记录了页面上所有的点击操作以及对应的点击按钮。但是我们看下来发现,我们需要给每个按钮加一个唯一标识做区分,并且这个ID是给U…