ElasticSearch的核心概念简单描述

news2024/12/23 10:45:35

我正在参加「掘金·启航计划」

ES核心概念

ES是面向文档,下面表格是和关系型数据库的对比,一切都是JSON

关系数据库(Mysql)ES
数据库(database)索引(indices) 和数据库一样
表(tables)types 慢慢会被弃用 7.0已经过时 8.0会彻底废弃
行(rows)documents (数据)文档
字段(columns)fields

ES中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)

物理设计:

ES在后台把每个索引划分成多个分片,没分分片可以在集群中的不同服务器间迁移

ES一个人就是一个集群,默认的集群名叫elasticsearch

逻辑设计:

一个索引类型中,包含多个文档

文档(表)

ES是面向文档的,那么就意味着索引和搜索数据的最小单位是文档,ES中,文档有几个重要属性:

1 自我包含 一篇文档同时包含字段和对应的值,也就是同时包含key:value
2 可以是层次的,一个文档中包含自文档,复杂的逻辑实体就是这么来的(其实就是一个JSON对象 Java中可以通过fastjson或者jackson自动进行转换)
3 灵活的结构,文档不依赖预先定义的模式,我们知道关系型数据库中,要提前定义字段才能用,在ES中,对于字段是非常灵活的,有时候,我们可以忽略该字段,或者动态的添加一个新字段

类型(字段属性类型 name varchar,name int之类的 )

类型是文档的逻辑容器,就像关系数据库一样,表格是行的容器,类型中对于字段的定义称为映射,在ES中,类型可以不定义设置,ES会去猜测数据类型,有可能出错,当然收到设置数据类型是最安全的

索引(数据库)

索引就是数据库,索引被分为5个分片,5个分片就是5个倒排索引,一个ES索引是由多个Lucenne库组成的
索引是映射类型的容器,ES中的索引是一个非常大的文档集合,索引存储了映射类型的字段和其他设置,然后他们被存储到了各个分支上,下面研究下分片是如何工作的

倒排索引

ES使用的是一种称为倒排索引的结构,采用Lucenne倒排索引作为底层,这种结构适用于快速的全文索引,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表

比如现在有两个文档

如果要搜索 to forever,由于文档1的权重(score )更高,所以优先考虑文档1,百度也是这样的机制

在看一个例子,倒排索引会过滤掉全部和查询无关的数据,效率更加高

总结其实就以下几个核心概念

1 索引
2 字段类型(mapping)
3 文档(documents)
4 分片(倒排索引)

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

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

相关文章

简单图论+二分搜索:环境治理

题目描述 LQ 国拥有 n 个城市, 从 0 到 n−1 编号, 这 n 个城市两两之间都有且仅有 一条双向道路连接, 这意味着任意两个城市之间都是可达的。每条道路都有一 个属性 D, 表示这条道路的灰尘度。当从一个城市 A 前往另一个城市 B 时, 可 能存在多条路线, 每条路线的灰尘度定义为…

前端项目规范化:手把手教你使用prettier和pre-commit(git hook或者husky)优化规范项目代码

如何在提交代码之前,进行代码格式化检查,保证每个成员的代码都是同一个风格呢? 最简单的两种方式: 使用 prettier git pre-commit 使用 prettier husky(原理和第一种一模一样哦) 名词简介 git hooks 下图为git hooks的官方…

FcaNet: Frequency Channel Attention Networks论文总结和代码详解

论文:https://arxiv.org/abs/2012.11879 中文版:FcaNet: Frequency Channel Attention Networks 源码:https://github.com/cfzd/FcaNet或https://gitee.com/yasuo_hao/FcaNet 目录 一、论文背景和出发点 二、创新点 三、离散余弦变换&…

FastDFS-图灵

1. 分布式文件系统应用场景 互联网海量非结构化苏剧的存储需求 电商网站:海量商品图片视频网站:海量视频文件网盘:海量文件社交网站:海量图片 2.FastDFS介绍 https://github.com/happyfish100/fastdfs 2.1 简介 FastDFS是一个…

(转载)支持向量机(support vector machine, SVM)的分类(matlab实现)

支持向量机(support vector machine,SVM)是一种新的机器学习方法,其基础是Vapnik 创建的统计学习理论(statistical learning theory,STL)。统计学习理论采用结构风险最小化(structural risk minimization,SRM)准则,在最小化样本点误差的同时,…

Redis进阶 - Redis主从

原文首更地址,阅读效果更佳! Redis进阶 - Redis主从 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-advance-master-slave.html 搭建主从架构 单节点 Redis 的并发能力是有上限的,要进一步提高 Redis 的并发能力&am…

CSS3技巧35:滚动的条纹背景

感觉好久没更博客了,虽然我经常登录看下粉丝数。O(∩_∩)O 端午节摆烂,休息了下,恢复下元气。 节后开始满负荷工作。 ---------------------------正文开始------------------------------------------ 做进度条的时候,有时候会…

Tomcat【部署zrlog】

目录 目录 1、单节点部署zrlog【192.168.200.121】 1.1、 创建数据库、远程登录用户 1.2、 浏览器访问 2、 LB集群-构建-部署zrlog-NFS共享存储 2.1、 安装、配置LB【192.168.200.120】 2.2、 NFS-资源共享【192.168.200.125】 3、配置tomcat访问日志中记录真实IP 1、单…

[元带你学: eMMC协议详解 20] emmc的命令(cmd)、响应(resp)详解

依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载。 所在专栏 《元带你学: eMMC协议详解》 内容摘要 全文 8100字, 主要内容 对eMMC的command进行详细介绍,主要包含如下内容: (1) emmc命令有哪些 (2) 使用不同命…

Java POI (1)—— 数据读写操作快速入门

一、Excel的版本区别(03版和07版) 所谓“03版” 和 “07版”,指的是 Microsoft Excel 版本号。这些版本号代表着不同的Excel 文件格式。2003版 Excel 使用的文件格式为 .xls,而2007版开始使用新的文件格式 .xlsx。 . xlsx 文件格式…

Unreal 5 蓝图常用的一些节点和规范

命名规范 蓝图类以 BP_作为前缀 对应Blue Print 混合空间以 BS_作为前缀 Blend Space 静态网格体以 SM_作为前缀 StaticMesh 骨骼网格体以 SK_作为前缀 Skeletal Mesh 纹理以 T_作为前缀 Texture 粒子系统 以 PS_作为前缀 Particle System 主材质以 M_作为前缀 Material 材质子…

手术机器人常见骨科手术 TKA UKA HTO

TKA UKA HTO 首先这几种手术都是常见的手术,下面先进行常见的但要介绍: 近年来有大量的研究聚焦于手术方式的对比,这里先就现有证据对「HTO」、单髁置换「UKA」和全膝置换「TKA」做一个简要的总结,以便于速查: TKA 不…

熵权法步骤及例题讲解

一、基本原理 在信息论中,熵是对不确定性的一种度量。不确定性越大,熵就越大,包含的信息量越大;不确定性越小,熵就越小,包含的信息量就越小。 根据熵的特性,可以通过计算熵值来判断一个事件的随…

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

🎊专栏【玩转Linux操作】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题🥰 文章目录 🍔概述⭐注意⭐示例🏳️‍🌈然…

scala的基本语法

注释 对于scala的注释,简而言之就是一句话,和java的注释一模一样 基本语法 (1)单行注释:// (2)多行注释:/* */ (3)文档注释:/****/代码示例&…

samaphore、countdownlatch、cyclinarrier

目录 一、samaphore 1、介绍 2、应用 3、原理 二、countdownlatch 三、cyclicbarrier 一、samaphore 1、介绍 信号量,用来限制同时访问共享资源的线程上限。可以理解为停车场入口的提示排,标识有多少车位,有车位才能进去停车&#xf…

ElasticSearch-使用IK分词器进行分词

使用KIbana测试IK分词器 打开开发工具台 ik_smart 最少分词器 分词结果比较少 GET _analyze{"analyzer": "ik_smart","text": "中国共产党"}ik_max_word 颗粒度最细分词器 分词结果比较多,组成各种结果,穷尽词库的可能&#xff01…

easypan前端学习

文章目录 前端项目node 版本node镜像构建项目创建项目安装项目所有依赖 图片资源网站encodeURI & decodeURIapp.config.globalProperties与getCurrentInstanceObject.assignvue-cookies安装vue-cookies 使用vue-cookiesrouter.currentRoutepreserve logimport.meta.envRequ…

QPaint绘制图形

流程 继承QWidget类&#xff0c;重写paintEvent方法&#xff0c;在其中使用QPainter进行绘图。 举例 创建项目&#xff0c;项目结构如下&#xff1a; // widget.h#ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget…

TypeScript ~ TS 掌握编译文件配置项 ⑥

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; TypeScript ~ TS &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &…