6.ES基础概念及术语详细解读

2023-11-01

一、Elasticsearch概述:

ES是基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全问搜索引擎,且ES支持RestFulweb风格的url访问。ES是基于Java开发的开源搜索引擎,设计用于云计算,能够达到实时搜索,稳定、可 靠、快速。此外,ES还提供了数据聚合分析功能,但在数据分析方面,es的时效性不是很理想,在企业应用中一般还是用于搜索。ES自2016年起已经超过Solr等,称为排名第一的搜索引擎应用。

1.1 ES、Lucene、solr对比:

Luence是Apache基于Java编写的信息搜索工具包(jar包),它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此Lucene的使用需要我们进一步开发搜索引擎系统, 如果数据获取、解析、分词等。
Solr 是一个有HTTP接口的基于Lucene的查询服务器,是一个搜索引擎系统,系统封装了很多lucene细节,Solr可以直接利用HTTP GET/POST 请求去查询,维护修改索引。Solr利用zookeeper进行分布式管理,它的实现更加全面,官方提供的功能更多。
Elasticsearch 是一个建立在全文搜索引擎Apache Lucene基础上的搜索引擎,采用的策略师分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
es的实时搜索性比solr更好。

1.2 ES的特性:

  • 速度快、易扩展、弹性、灵活、操作简单、多语言客户端、X-Pack、开箱即用。
  • 分布式:横向扩展非常灵活 全文检索:基于lucene的强大的全文检索能力;
  • 近实时搜索和分析:数据进入ES,可达到近实时搜索,还可进行聚合分析
  • 高可用:容错机制,自动发现新的或失败的节点,重组和重新平衡数据
  • 模式自由:ES的动态mapping机制可以自动检测数据的结构和类型,创建索引并使数据可搜索。
  • RESTful API:JSON + HTTP

二、Elasticsearch基本概念:

2.1 概念:

1.集群(cluster)
一个ES集群由多个节点(node)组成, 每个集群都有一个共同的集群名称最为标识

2.节点(node)
一个es实例即为一个节点,一台机器可以有多个节点,正常使用下每个实例都应该会部署在不同的机器上。ES的配置文件中可以通过node.master、 node.data 来设置节点类型:

node.master: true/false 表示节点是否具有成为主节点的资格
node.data: true/false表示节点是否为存储数据 node.ingest : 执行文档在索引之前的预处理操作、数据转换、清洗、标准化等,一般Pipeline用到

3.索引(index)
一个索引是一个拥有一些相似特征的文档的集合(相当于关系型数据库中的一个数据库)。
例如,您可以拥有一个客户数据的索引,一个商品目录的索引,以及一个订单数据的索引。一个索引通常使用一个名称(所有字母必须小写)来标识,当针对这个索引的文档执行索引、搜索、更新和删除操作的时候,这个名称被用来指向索引。

es 关系型数据库
倒排索引(Inverted index) 索引(index)
字段(field) 数据列或字段(column)
文档(document) 数据行(Row)
映射关系(mapping) 表结构及字段类型定义(Schema)
类型(type) 表(table)
索引(index) 数据库(Database)

4.分片 (shard)

Elasticsearch可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。
分片的数量只能在索引创建前指定,并且索引创建后不能更改。
一个分片可以是主分片(用P表示)或副本分片(用R表示)。
Elasticsearch 7.0以下版本默认为一个索引创建5个主分片,并分别为每个主分片创建1个副本分片,7.0及以上版本默认创建1个主分片和1个副本分片。两者区别如下:

分片类型 支持处理的请求 数量是否可以被修改 备注
主分片 支持处理索引和查询请求 创建索引时指定,已经创建好的索引无法修改 索引内的任意一个文档都存储于索引内某个主分片中,因此主分片的数量和大小决定着索引能够保存的最大数据量,过多的分片个数会导致集群启动压力大,启动、恢复、响应慢
副分片 支持处理查询请求,索引请求需要由主分片同步机制触发 可以在创建索引时指定,已经创建好的索引可以动态修改 副本的作用体现在两个方面:1. 提高系统容错性,当某个节点或某个分片损坏丢失时可以从副本中恢复。2.提高查询的效率,XH-Elasiticsearch会对搜索请求进行负载均衡
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

6.ES基础概念及术语详细解读 的相关文章

随机推荐

  • unity各种特效shader效果资源以及位置

    录制自己的视频或者写博客 实时更新 学习unity资源商店的Demo 多在资源商店逛逛很重要 shader必须学 shader的基础是3D图形学 unityTextMeshPro中文字体制作 https blog csdn net qq 3
  • 全志A13折腾备忘

    启动过程 uboot with spl gt kernel gt os 其实主要是uboot with spl这一块 根据OLinuXino的说法 uboot分为两类 sunxi uboot mainline uboot 分别是全志和ubo
  • POJ 1240 Pre Post erous

    给定一颗k叉树的前序和后序遍历序列 求这个k叉树一共可能有多少种 求每个节点孩子节点的个数n 然后从m个位置中选n个位置给这n个孩子 一共有c m n 中选法 把所有节点的这个值相乘即可 include
  • vue中template的三种写法

    第一种 字符串模板写法 直接写在vue构造器里 这种写法比较直观 适用于html代码不多的场景 但是如果模板里html代码太多 不便于维护 不建议这么写 第二种 直接写在template标签里 这种写法跟写html很像 第三种 写在scri
  • Mybatis的代码自动生成插件(Free Mybatis plugin)

    介绍 使用的是Free Mybatis plugin代码生成插件 在idea的plugins中可以搜索到 并且是免费的 唯一的不足就是 代码如果重新生成 会被覆盖掉 所以需要手动的进行合并源代码 不过通过git可以比较好的解决该问题 安装
  • 算法导论:钢条切割问题方法全解(递归+动态规划)

    public class Main public static void main String args Main main new Main int p 0 1 5 8 9 10 17 17 20 24 30 System out pr
  • python网络爬虫--基本概念(1)

    一 爬虫简介 1 1 爬虫的定义 网络爬虫 又被称为网页蜘蛛 网络机器人 在FOAF社区中间 更经常的称为网页追逐者 是一种按照一定的规则 自动批量化地抓取万维网信息的程序或者脚本 自动批量化的抓取既有数据 模拟客户端发送请求 接受数据 1
  • PMP题目与解题思路(第五天)

    PMP题目与解题思路 第五天 41 在一次社交集会中 一位团队成员无意中告诉一位相关方项目已经落后于进度计划 并且构成重大延迟 与项目经理沟通该问题时 该相关方非常激动 此时项目经理应该怎么做 A 同团队回顾风险管理计划 B 创建相关方影响
  • 使用JQgrid常用 (实战经常用)

    jqgrid参数 jqGrid参数 名称 类型 描述 默认值 可修改 url string 获取数据的地址 datatype string 从服务器端返回的数据类型 默认xml 可选类型 xml local json jsonnp scri
  • stm32智能小车设计

    提前说说 博主是用寄存器写的驱动 历时两周 总算把小车弄好了 总体上来说做的太慢了 自己在32的学习中还不够仔细深入 只是浅面的学习 当真正做一个项目时 暴露的问题就太多了 这次在小车的制作的过程中 遇到了各种各样的问题 软件 硬件 各式各
  • openwrt上opkg更新报错"opkg_download: Failed to download ............."

    開始搞op的时候 看到op居然能够直接安装一些插件 激动坏了 由于这东西对嵌入式的小系统来说简直不敢想 可是op就支持了 就是这么任性 好不easy编译了固件 依照网上的教程 telnet进去 首先opkg update 结果没有想象中的华
  • discuz密码找回:[1]忘记UCENTER创始人密码

    人们都是健忘的 何况每天的事情很多 有些站长更是兼职做 赚点外快而已 而ucenter更是不常用 所以忘记密码是在正常不过的事情 如果密码忘记怎么找回呢 方法有很多种 例如用comsenz tools工具 但是这个有版本问题 有些人怕装上出
  • LeetCode:4.寻找两个正序数组中的中位数(median-of-two-sorted-arrays)思路与题解

    LeetCode 4 寻找两个正序数组中的中位数 median of two sorted arrays 包含输入的完整代码LeetCode 4 寻找两个正序数组中的中位数 median of two sorted arrays Java完
  • 报错 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 解决方案

    Android项目报错 java lang IndexOutOfBoundsException Index 0 Size 0 我忘记截图了哈哈哈 记录一下错误原因 找了老半天 ok 出现这种错误是数组值没有取到 我们可以在取值之前加一个判断
  • 微信人人商城云服务器,微信支付 · 微智人人商城使用文档 · 看云

    支付管理 添加新模板 https box kancloud cn a39c011c0de721adce0ebef9b95162d4 1151x763 png 公众号appid获取方法 登陆公众平台 左侧导航 开发 基本配置 开发者ID AP
  • C# 将时间戳 byte[] 转换成 datetime 的几个方法

    推荐方法 DateTime now DateTime Now byte bts BitConverter GetBytes now ToBinary DateTime rt DateTime FromBinary BitConverter
  • LLM的用法

    一 生成表格 推测以下评价内容的情绪 情绪只包括 客观 积极 消极 输出表格 格式 编号 段落前10个字摘要 情绪判断 1 这东西给用户最大的门槛就是 描述是否精准 你描述的越精准 他给你的答案也就越精准 所以那些根本不知道自己需求是什么的
  • Android面试必备的JVM虚拟机制详解,看完之后简历上多一个技能!

    掌握了本篇知识之后 简历上就可以多加一条个人技能了 熟悉 JVM 相关知识 包括内存区域 内存模型 GC 类加载机制 编译优化等 下面就是正文了 欢迎讨论 目录 内存区域 内存模型 内存分配回收策略 Java 对象的创建 内存布局和访问定位
  • 蓝桥杯 算法训练 拿金币(java)

    蓝桥杯 算法训练 拿金币 java 题 试题 算法训练 拿金币 资源限制 时间限制 1 0s 内存限制 256 0MB 问题描述 有一个N x N的方格 每一个格子都有一些金币 只要站在格子里就能拿到里面的金币 你站在最左上角的格子里 每次
  • 6.ES基础概念及术语详细解读

    一 Elasticsearch概述 ES是基于Lucene的搜索服务器 它提供了一个分布式多用户能力的全问搜索引擎 且ES支持RestFulweb风格的url访问 ES是基于Java开发的开源搜索引擎 设计用于云计算 能够达到实时搜索 稳定