elasticsearch原理相关

ElasticSearch底层相关原理 一、ElasticSearch文档分值_score计算底层原理 查询的时候会对搜索到的文档进行打分(filter方式不会打分)。 1.boolean model 根据用户的query条件,先过滤出包含指定term的doc,这一步是不会打分的。 2.relevance score算法 [ˈreləvəns] 相关度 简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度 Elasticsearch使用的是 term freque... 阅读详情

Elasticsearch的相关原理与问题

1、首先来谈谈es的分布式架构原理

​ 首先es是一个分布式 的搜索引擎,底层是依赖于Lucene(使用倒排索引)的,核心是在多个机器上,启动多个es进程的实例来组成一个es的集群,保证其的高可用性,每个进程也被成为一个node,多个es的进程会选举出来master的节点,它将负责管理集群变更,例如创建或删除索引,添加节点到集群或从集群删除节点。,master 节点无需参与文档层面的变更和搜索。

​ es的基本存储单位是索引,es会将索引分为存储到多个shard(分片是一个独立的Lucene实例,并且它自身也是一个完整的搜索引擎)上,每个shard存储部分数据,可以很好 的横向扩张和提高查询的性能,各个shard分别查找,提高查询速度,每个shard分为primary shard 和 replica shard(备份数据),默认的情况下,每个索引会被分成5个primar shard和一个replica shard,每个shard的primar shard和replica不能再同一个node上,为了一台node宕机,不会丢数据,写数据都是要写入到 primary shard 中去,但是读数据,两者都可以。

​ 如果master节点宕机了,那么剩下的node会选举出一个master节点,并且重新协调各个shard,如果哪个primary shard 没了,但是 replica shard 还在,master会将备份节点转为 primary shard,如果修复了宕机的那台机器,重启之后,master节点就会控制将缺失的replica shard 分配过去,同步后续的修改工作,让集群恢复正常。

2、es的写数据过程

​ 首先客户端发送一个请求写入数据,随机选择一个节点,选择的这个节点叫做协调节点,协调节点对写入的数据的document进行hash,然后找到对应的(可能就在协调节点或者在其他节点上)primary shard ,写入数据,这个写入的数据也是复杂的一个步骤:

(1)、根据路由找到对应的primary shard节点上,首先是将数据写入到es的进程内存 buffer 中去的,同时将数据写入到tranglog日志文件中,这其实先将日志数据写入到OS cache中,然后每个5秒回涮新到tranglog中的,刚写入到内存的时候,这个时候,其他查询这个数据的请求是无法查询到的。

(2)、不断的数据写入到buffer中,写入满的时候,或者默认每隔1秒钟回刷新(refresh)buffer,将数据刷新到OS cache中,OS cache回将数据写入到segment file(磁盘),只要刷新到OS cache中 就可以读取数据了(也可以手动的刷新refresh)

(3)、随着磁盘的 tranglog中的数据越来越来多,就会触发commit命令,这个会将buffer中的数据refresh到OS cache中,清空 buffer ,将一个commit point 写入磁盘中,里面标识这这个commit point 对应的所有segment file,也会将OS cache中的数据刷新到磁盘上面去,清空tranglog文件中日志,这个命令是,每个30分钟或者满了会执行flush。

3、删除数据的过程

​ 不是直接将数据删除,而是有一个 .del 的文件,将数据标志为delete,但是这个时候,这个数据是查询不到的,只有当segment file文件很大时候,才会将del文件删除

4、读数据过程
  • 搜索被执行成一个两阶段过程,我们称之为 Query Then Fetch;
  • 在初始查询阶段时,查询会广播到索引中每一个分片拷贝(主分片或者副本分片)。 每个分片在本地执行搜索并构建一个匹配文档的大小为 from + size 的优先队列。PS:在搜索的时候是会查询Filesystem Cache的,但是有部分数据还在Memory Buffer,所以搜索是近实时的。
  • 每个分片返回各自优先队列中 所有文档的 ID 和排序值 给协调节点,它合并这些值到自己的优先队列中来产生一个全局排序后的结果列表。
  • 接下来就是 取回阶段,协调节点辨别出哪些文档需要被取回并向相关的分片提交多个 GET 请求。每个分片加载并 丰富 文档,如果有需要的话,接着返回文档给协调节点。一旦所有的文档都被取回了,协调节点返回结果给客户端。

5、es集群的脑裂

es集群有可能会出现脑裂问题,原因主要有两个:
1)如果集群中节点不在同一个网段有可能是网络延迟造成的
2)如果集群中的节点在同一个网段,有可能是主节点负载太大造成的
解决方案主要有两种:
1)把主从节点的职责分离,设置三个储备主节点,node.master=true,node.data=false从节点只存储数据,node.master=false,node.data=true
2)增加延迟时间 将储备主节点数最小设为n/2+1个

6、es提高查询效率

​ 给 OS cache 较大的内存、将不必要的数据不存入es中,将热点数据提前存入到OS cache中

7、Elasticsearch的Master选举
  • Elasticsearch的选主是ZenDiscovery模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此)和Unicast(单播模块包含一个主机列表以控制哪些节点需要ping通)这两部分;
  • 对所有可以成为master的节点(node.master: true)根据nodeId字典排序,每次选举每个节点都把自己所知道节点排一次序,然后选出第一个(第0位)节点,暂且认为它是master节点。
  • 如果对某个节点的投票数达到一定的值(可以成为master节点数n/2+1)并且该节点自己也选举自己,那这个节点就是master。否则重新选举一直到满足上述条件。
  • 补充:master节点的职责主要包括集群、节点和索引的管理,不负责文档级别的管理;data节点可以关闭http功能。
8、客户端在和集群连接时,如何选择特定的节点执行请求的

​ TransportClient利用 transport 模块远程连接一个 elasticsearch 集群。它并不加入到集群中,只是简单的获得一个或者多个初始化的 transport 地址,并以 轮询 的方式与这些地址进行通信。

ElasticSearch查询原理一篇文章搞懂 1ES架构简介 国际惯例,站在上帝的视角看看闻名的ElasticSearch长什么样,由于今天仅仅讲查询模块,所以对图中的大多数模块不会涉及。 查询相关的模块主要有:Api接口,Transport模块,Searcher模块、索引相关。 2ES查询分类 ElasticSearch支持的查询有三种 query_and_fetch ... 阅读详情

相关推荐

Elasticsearch BM25算法详解:大数据搜索相关性计算原理

BM25是**「平衡词频、稀有度、文档长度的概率检索模型」**,通过「TF饱和机制」和「文档长度归一化」,解决了TF-IDF的痛点,是大数据场景下「高效、可解释」的相关性计算标准。

软件工程实践的博客 962

elasticsearch 的一些理解

es官方中文文档 es 对比 solr solr 使用zookeeper 进行分布式管理 es 自身带有分布式协调功能 solr 带有各种数据格式 es 只支持json es 接近实时搜索 概念理解 集群 : 集群是由一个或者多个拥有相同cluster.name配置的节点组成 节点 : 每一个运行的ES实例都是一个节点 分片 : 一个分片是一个底层工作单元 , 保存...

qq_36465337的博客 363

Android Camera Sensor HDR详解

本文详细介绍了Android相机传感器(Sensor)中实现高动态范围(HDR)采集的各种技术方式。主要内容包括: Sensor HDR技术分类 帧内HDR(Single-Frame HDR):在同一帧同一像素内完成多增益采集,无运动伪影和帧率损失,包括DAG(双模拟增益)、DCG(双转换增益)等技术 帧间HDR(Multi-Frame HDR):通过多帧曝光实现,如DOL(数字重叠)、Staggered HDR等 混合HDR:结合多种技术的复合方案 详细技术原理 重点解析了DAG和DCG两种主流帧内HDR

DU_YULIN的博客 361

Elasticsearch原理(一):实时架构

Elasticsearch的核心优势就是近乎实时,为什么说是近乎实时而非真实意义上的实时呢,因为Elasticsearch能够做到准实时,而并不是完全的实时。下面介绍Elasticsearch是如何索引数据的整个流程。 先上图: 首先,当我们对记录进行修改时,es会把数据同时写到内存缓存区和translog中。而这个时候数据是不能被搜索到的,只有数据形成了segmentFile,才会...

桃花惜春风 7632

红外气体检测方案解析:从NDIR原理到物联网终端设计实践

气体检测是工业安全与环境监测的核心需求,其技术原理主要基于气体分子对特定物理或化学信号的响应。非色散红外(NDIR)技术作为一种物理检测方法,通过测量气体分子对特定波长红外光的吸收来定量浓度,因其不依赖化学反应,具备寿命长、抗干扰强和响应快等优势。在工程实践中,红外气体检测方案的价值在于为物联网终端设备提供了高可靠、低功耗的感知能力,广泛应用于工业过程监控、环境空气质量监测以及智能家居安全预警等场景。本文以一套集成了Microchip MCU、Axetris红外光源和Pyreos热释电传感器的参考设计为例,

weixin_30954817的博客 394

亿图机床采集数据

这个数控系统的英文名是HUST,在台湾知名度还可以,但大陆这边我做这么多年项目也只接触过屈指可数的几次,可见市场占有率并不大,联网采集不复杂。

若云流风的专栏 2492

ElasticSearch 架构图

                                               ElasticSearch 架构图           从下往上来分析ElasticSearch 架构图   Gateway代表ElasticSearch索引的持久化存储方式。       在Gateway中,ElasticSearch默认先把索引存储在内存中,然后当内存满的时候,再持久化...

weixin_33898876的博客 548

如何解除Uniaccess管控??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2389

Elasticsearch 企业级别性能优化(一)

一、倒排索引 ElasticSearch引擎把文档数据写入到倒排索引(Inverted Index)的数据结构中,倒排索引建立的是分词(Term)和文档(Document)之间的映射关系,在倒排索引中,数据是面向词(Term)而不是面向文档的。 举个例子,文档和词条之间的关系如下图: 字段值被分析之后,存储在倒排索引中,倒排索引存储的是分词(Term)和文档(Doc)之间的关系,简化版的...

数据与算法架构提升之路专栏 3085

两点调制原理以及RF DAC和PLL SDM两条输入路径理解

特性数据本质原始数字比特流 (0/1)平滑后的预失真波形数据连接对象Σ-Δ调制器 (SDM)的小数输入RF DAC在系统中的角色主调制路径:通过改变PLL分频比产生频率偏移辅助补偿路径:通过RF DAC产生补偿电压,校正PLL失真可否加入延时可以且必须。用于数字时序对齐,对性能无影响。绝对不可以。会导致补偿失配,严重破坏信号频谱。功能目标实现数字域的频率调制确保模拟域的波形和频谱完美因此,在您所描述的这种先进发射机架构中,2-point数据是数字指令,送给SDM;

m0_49540263的博客 604

机床联网系列总结

总结机床联网专栏,两个好用的工具介绍,以及后续提升的方法和建议。

若云流风的专栏 934

搜索引擎(大数据检索)论述[elasticsearch原理相关]

这是基本的词项存储列表,词项在存储的时候,是根据id进行k-v Map形式存储,而且存储也是分布式的,根据id hash计算处对应存储的key,然后知道对应存储的卡槽和卡槽所在的计算机节点(redis和kafka的类似思维的结合)。上述的词项属性中有一个词项的资源列表的概念,这里是一个倒序排列的出现该词项的所有的资源id的列表(int 列表),为了能很好检索出来词项对应的资源,对应的资源列表信息肯定需要存储的,这是必不可少的存储的数据单元。是必不可少的,根据压缩后的逻辑遍历数据,从而使得检索更快。

lxlmycsdnfree的博客 2851

数仓建模:维度表合并时,如何处理可能出现的数据冲突?

通过以上方法,可以有效地处理维度表合并时可能出现的数据冲突,确保合并后的数据完整性、一致性和准确性,满足业务需求和数据仓库的性能要求。在合并过程中,需要根据实际情况选择合适的处理方法,并进行充分的测试和验证。(2)实战中总结的SQL技巧,帮助SQLBOY在SQL语言上有质的飞越,无论你应对业务难题及面试都会游刃有余【如果您觉得本文还不错,对你有帮助,那么不妨可以关注一下我的数字化建设实践之路专栏,这里的内容会更精彩。技巧总结,让你认识不一样的数仓。,数据库会抛出异常,可根据异常处理机制解决。

石榴姐yyds 1132

ES相关性计算原理

了解es搜索过程中的,对判断当前应用场景是否适合使用es来召回相关结果至关重要。本篇博文尝试对es在每一个节点执行搜索时如何计算query和经由倒排索引查询到的对应字段文本之间的相关性得分max_score做简要说明。

Steve Wang's blog 1676

uniapp(全端兼容)-最新详细实现接入腾讯云IM即时通讯教程,uniapp在安卓苹果app端/小程序/h5移动端等集成使用腾讯云im插件,提供消息列表与聊天对话示例,支持发图片/私聊/实时监听消息

uni-app,腾讯云IM,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,im即时通讯,腾讯云IM详细教程,如何接入腾讯IM即时通讯,使用腾讯im有没有插件,怎么使用腾讯云IM插件,tim-wx-sdk,聊天sdk,即时通讯im uniapp私聊/群聊/聊天室,实现IM即时通讯仿微信聊天功能,对接腾讯云IM+音视频,调用腾讯即时通信IM的示例,卡顿很卡不流畅,音视频,全局监听,仿微信IM,uni-huanxin-im,sdk,实现多端实时通

✅ 精选推荐文章 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ElasticSearch搜索原理:倒排索引、分片查询、相关性打分

全文搜索是现代应用的标配功能。电商搜索"手机"如何秒级返回结果?如何按相关性排序?如何支持模糊搜索?理解倒排索引结构、分词器工作原理、分片路由策略、TF-IDF相关性算法、聚合分析实现、高亮显示技术,才能掌握搜索引擎的本质。从"淘宝搜索iPhone"场景出发,剖析ElasticSearch的核心技术。通过倒排索引快速定位文档、分词器拆分查询词、分片并行查询提升性能、TF-IDF计算相关性得分、BM25优化排序算法、聚合统计分析数据、高亮标记搜索词,揭秘搜索引擎的完整实现。

比较是偷走幸福的小偷 766

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

无法从elasticsearch节点检索版本信息_Elasticsearch搜索引擎简介及单机部署

1. 简介Eladticsearch是一个基于Lucene库的搜索引擎他提供了一个分布式、支持多用户的全文搜索引擎,采用的是HTTP接口的方式对外提供服务Elasticsearch 是一个实时的分布式搜索分析引擎,它被用作全文检索、结构化搜索、分析以及这三个功能的组合属于面向文档的数据库Elasticsearch 是面向文档的,意味着它存储整个对象或文档。Elasticsearch...

weixin_39693950的博客 337

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ElasticSearch学习篇6_ES实践与Lucene对比及原理分析技术分享小记

QBM、MFS的试题检索、试题查重、公式转换映射等业务场景以及XOP题库广泛使用搜索中间件,业务场景有着数据量大、对内容搜索性能要求高等特点,其中XOP题库数据量更是接近1亿,对检索性能以及召回率要求高。目前QBM、MFS使用的搜索中间件是Solr,后续需要升级为ES。看的书是《ElasticSearch源码解读与优化实战》的前半部分(与这篇博客部分内容重合),主要是ES的一些工程模块,分布式集群的一些理论知识。

xiaosi的博客 1488

python系列之搜索引擎原理与开发流程(Elasticsearch)

Elasticsearch 简介与原理 You know, for search! 文档 https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html Elasticsearch是一个基于Lucene库的搜索引擎。 它提供了一个分布式、支持多用户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。所有其他语...

汪云辉的博客 700

vb中怎么计算字段与字段的乘积_ElasticSearch相关性计算原理及实践

0 前言在贝壳找房,房源、小区、看点等涉及到文本搜索的应用都是以ES作为底层搜索和召回组件,经ES相关性计算后粗筛出结果,再对粗筛结果做二次排序。所以,ES的相关性计算好坏对这些应用的用户体验有直接或间接影响,对ES相关性调优是很有必要。本文结合ES在贝壳找房这些应用的实践经验,介绍ES的相关性计算原理,以及如何对相关性调优。1 ES相关性计算方式ES的打分机制是基于tf-idf算法进行...

weixin_39715348的博客 345

搜索引擎的介绍及相关原理

本文介绍了Boost库站内搜索引擎的实现方案。开发环境采用Ubuntu22.04,技术栈包含C++11、Boost、Jsoncpp等。系统通过正排索引建立文档ID与内容的映射,经过分词处理后构建倒排索引(关键词到文档的映射)。搜索时先在倒排索引中查找关键词对应的文档ID,再通过正排索引获取具体内容,最终返回标题、描述和URL。该系统实现了类似百度等搜索引擎的核心功能,但专注于Boost库文档的站内搜索。

博客 | 复习知识点 + 练习 + 最终的领悟 | 全力以赴 1128

ElasticSearch搜索相关性及打分的相关原理

举个例子来说明:假设有一个电商网站,用户在搜索框中输入了关键词"手机",然后触发了搜索操作。Elasticsearch会根据用户的查询,在索引中找到所有包含"手机"的文档,并按照相关性对这些文档进行打分。相关性评分的目的是确定搜索结果的质量和排序。相关性评分越高,表示搜索结果与用户查询的匹配程度越好。例如,对于一个包含"手机"关键词的文档,如果它在标题、描述和其他字段中多次出现"手机",那么它的相关性评分可能会很高。而对于一个只在描述中出现一次"手机"的文档,它的相关性评分可能会较低。

qq_39939541的博客 1565

ElasticSearch全文搜索引擎入门到入土

ElasticSearch全文搜索引擎,- 全文搜索Lucene入门 - ElasticSearch概述和安装 - ElasticSearch的基本使用 - ElasticSearch在Java中使用

weixin_48133130的博客 747

es集群节点数和分片数关系_ES集群内原理&相关性以及分数score计算

1. 集群相关一个运行中的 Elasticsearch 实例称为一个节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据。当一个节点被选举成为主节点时,它将负责管理集群范围内的所有变更,例如增加、删除索引,或者增加、删除节点等。 而主节点并不需要涉及到文档级别的变更和...

weixin_35128544的博客 3201

Elasticsearch——document相关原理

1. document数据路由原理 1.1 document路由到shard上是什么意思? 一个index的数据会被分为多片,每片都在一个shard中。所以说,一个document,只能存在于一个shard中。 当客户端创建document的时候,es此时就需要决定说,这个document是放在这个index的哪个shard上。 这个过程,就称之为document routing, 数据路由。...

weixin_34404393的博客 321

ElasticSearch相关概念及原理

一、基本概念 索引(Index) ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合,类比传统关系型数据库的一个数据库(database),或者一个数据存储方案(schema)。索引由其名称(必须全小写字符)进行标识,并通过引用此名称完成文档的创建、搜索、更新及删除操作。 类型(Type) 类型是索引内部的逻辑分区(category/partition),一个索引内部可定义一个或多个类型(type)。类比传统关系型数据库的一张表。 文档(Document) 文档是索引和搜索的原子单位,它是包含

weixin_44005485的博客 333
上一篇: elasticsearch安装及入门
下一篇: 程序,批量启动程序脚本
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值