Elasticsearch(一)---介绍

news2024/11/19 6:29:59

简介

Elasticsearch是一个基于Lucene的实际的分布式搜索和分析引擎。设计用于云计算中,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。基于RESTful接口。

官网地址:Elasticsearch 平台 — 大规模查找实时答案 | Elastic

ES与solr的对比:

接口

    类似webservice的接口  solr

    REST风格的访问接口 es

分布式存储

    solrCloud  solr4.x才支持

    es是为分布式而生的

支持的格式

    solr  xml   json

    es  json

倒排索引

lucene

例如:我们有两个文档:

The quick brown fox jumped over the lazy dog

Quick brown foxed leap over lazy dogs in summer

我们首先将每个文档进行分词,创建一个对唯一词语有序的列表,

对每个词在哪些文档中出现过的文档列表。

如右图所示:

Doc_1:

The quick brown fox jumped over the lazy dog

Doc_2:

Quick brown foxed leap over lazy dogs in summer

现在我们查询quick brown,我们只需要知道这个词在哪些文档出现过:

如果我们使用简单的相似性算法,比如说将每个文档匹配的词语数相加,我们就能看出来第一个文档更加匹配,比第二个文档更加符合我们的查询条件:quick brown。

优化:

1、Quick可以全小写,则和quick一样

2、foxes转换为原型fox。dogs变为dog

3、jumped和leap是同义词,都看成jump

倒排索引变为:

此时,如果我们在将查询条件使用相同的流程进行转换则两个文档都能匹配上了。

进行分词和同义词等操作称为“分析”。

倒排索引

关键字 对应的文档 每个文档的tf-idf的值(相关度得分) 每个文档中关键字出现的位置以及偏移量(为了做高亮)

Hello doc1:10:56~60,doc2:11:56~60,doc3:9:56~60,doc4:4:56~60

word doc1:10:56~60,doc2:11:56~60,doc3:9:56~60,doc4:4:56~60

tom doc1:10:56~60,doc2:11:56~60,doc3:9:56~60,doc4:4:56~60

hadoop doc1:10:56~60,doc2:11:56~60,doc3:9:56~60,doc4:4:56~60

一个HTML页面

lucene的倒排索引占文档的20%~30%

100GB   20G~30G

索引的过程

获取文档,并将文档进行分词

计算每个词的相关程度

计算每个词在词条中的位置和偏移量

。。。

搜索的过程

获取用户的输入

分词

到倒排索引中对词语进行查找,并按照词语相关度做倒序排列

将结果返回给用户。

ES优点:(了解)

  1. 分布式:ES的自动发现机制会识别新增的节点并重新平衡分配数据。
  2. 全文检索:ES后台使用Lucene提供全文检索,自带多语言支持、强大的查询语言、地理位置支持、上下文感知的建议、自动完成和搜索片段
  3. 近实时搜索和分析:数据从进入ES到能够搜索到是近实时的。除了搜索,ES也可以进行聚合分析操作。
  4. 高可用:ES会自动发现新的或失败的节点,重组和重新平衡数据,确保数据是安全的和可访问的。
  5. 模式自由:ES的动态Mapping机制可以自动检测数据的结构和类型,创建索引,并使数据可搜索。
  6. RESTful API:几乎任何操作都可以使用一个简单的RESTful API,JSON基于HTTP请求来实现,客户端也可以使用多种编程语言。

应用场景(了解)

  1. 站内搜索:京东、淘宝、论坛等的站内搜索
  2. NoSQL数据库:ES读写性能优于MongoDB,同时也支持地理位置查询
  3. 日志分析:日志分析由实时日志分析平台ELK完成,能够对日志进行集中的收集、存储、搜索、分析、监控以及可视化。

如何索引文档(理解)

为新增的文档创建倒排索引

默认情况下,当索引一篇文档的时候,系统首先根据文档ID的散列值选择一个主分片,并将文档发送到该主分片。这份主分片可能位于另一个节点。然后文档被发送到该主分片的所有副本分片进行索引,副本分片和主分片之间保持数据的同步。

如何检索文档(理解)

在默认情况下,搜索请求通过round-robin轮询机制选中主分片和副本分片,其假设集群中所有的节点是同样快的。

接收客户端请求的分片节点会创建一个空的优先级队列并且配置好分页参数from与size。

该节点将检索请求发送给该索引中个每一个shard(无论是primary还是replica,可以构成一个完整的索引数据)。每个shard在本地执行检索,并将结果添加到本地优先级队列中。

每个shard返回本地优先级序列中所记录的_id与sort值,并发送给接收客户端请求的节点,该节点将这些值合并到自己的本地的优先级队列中,并做全局的排序,返回给客户端。

脑裂问题(理解)

1. 网络:由于是内网通信,网络通信问题造成某些节点认为master死掉,而另选master的可能性较小

2. 节点负载:由于master节点与data节点都是混合在一起的,所以当工作节点的负载较大时,导致对应的ES实例停止响应,而这台服务器如果正充当着master节点的身份,那么一部分节点就会认为这个master节点失效了,故重新选举新的节点,这时就出现了脑裂;同时由于data节点上ES进程占用的内存较大,较大规模的内存回收操作也能造成ES进程失去响应。fullGC  stop the world

解决方式:

主节点

node.master: true  

node.data: false  

从节点

node.master: false  

node.data: true  

所有节点

discovery.zen.ping.multicast.enabled: false  

discovery.zen.ping.unicast.hosts: [“master”, “slave1”, “slave2"]  

discovery.zen.minimum_master_nodes: 2

单播:点对点通信,不是吼一嗓子,而是悄悄的问,谁是我兄弟

多播:吼一嗓子,谁是我兄弟,大家可以同时听到

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

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

相关文章

开关电源测试方案分享:电源纹波及噪声测试方法、测试标准

纹波及噪声影响着设备的性能和稳定性,是开关电源测试的重要环节。通过电源纹波噪声测试,检测电源纹波情况,从而提升开关电源的性能。纳米软件开关电源自动化测试软件助力纹波和噪声测试,提升测试效能。 开关电源纹波及噪声测试方法…

一文分享提升嵌入式代码的分析工具

当前标准的C语言编译器存在普遍只能找出代码中潜在的缺陷,而对程序方案设计并没有效。 使用静态代码分析器有助于提升固件和捕获编译器难以察觉的问题。 1、用于嵌入式的常见代码静态分析工具 代码静态分析工具,顾名思义就是对代码进行静待分析&#…

【Python图像处理局部放大】输入图像,选择两处不同的区域进行放大操作,然后将原始图像、处理后的两个区域以及标记合成新图像进行展示

NeRF-w 渲染后的图像效果的定性对比,对局部放大以观察细节效果。如下 对单张渲染后的图像,选择指定区域并进行放大操作,然后将原始图像、处理后的两个区域以及标记连线的新图像,如下图 代码 from PIL import Image, ImageDraw# 读…

预制件二维码怎么做

凡尔码的二维码管理系统不仅提供了高效便捷的二维码生成功能,还配备了一套完善的预制构件管理方案。通过扫描二维码,用户可以查看预制构件的详细信息,包括项目名称、构建名称、安装位置、重量、生产日期、生产单位、产品出厂检验材料、尺寸等…

《2023整车操作系统发展趋势研究》丨附下载

✦ ✦✦ ✦✦ ✦✦ ✦ 1996年,Gartner提出SOA其核心思想在于“通过将庞大的计算系统按照实际业务拆分为独立部署的大小合适的功能模块,提高功能单元的复用性,降低产品开发的复杂度和成本”。 如今,软件定义汽车领域引入SOA&…

竟然还有人不知道这个app?注册即可在线管理各类地理空间数据

「四维轻云」是一款轻量化的地理空间数据管理云平台,具有项目管理、数据浏览、数据分享、场景编辑、素材库等功能。 此外,用户还可以在应用商店及官网下载安装“四维轻云”APP。安装完成后,用户可以在APP中管理、查看及分享倾斜摄影模型、激…

一文看懂完整的研究生生活规划

很多人在刚从本科步入研究生生活的时候,总是对于自己三年的研究生生活没有清晰的规划,总是在各种浪费时间,没有拿到想要的东西,也没有学到想学的东西,亦或是没有找到理想的工作,最后草草的毕业。这个时候我们就应该对于自己的研究生生活有个清晰的规划,帮助我们不留遗憾…

集群/堆叠的常用部署实施方式,你会吗?

你们好,我的网工朋友。 交换机的连接方式大家应该都知道吧,一共有三种,分别是:级联、堆叠和集群。 级联一般用来实现多台交换机之间的互相连接。 堆叠和集群,就总有网工把这两给搞迷糊了。 堆叠就是将多台支持堆叠特…

python_PyQt5日周月K线纵向对齐显示_1_数据处理

目录 写在前面: 图形结果显示: 数据设计: 代码: 从日数据中计算周数据、月数据 生成图形显示需要的数据格式 写在前面: “PyQt5日周月K线纵向对齐显示”,将分三篇博文描述 1 数据处理。将数据处理成…

Python学习——Day12

目录 一、实例方法、类方法、静态方法 1.1实例方法 1.2类方法 1.3静态方法 1.4实例 二、 __slots__ 三、错误和异常 3.1语法错误 3.2异常 3.3异常处理 一、实例方法、类方法、静态方法 1.1实例方法 实例方法入参第一个值,默认self指代当前调用的对象,不建…

数字转型下的保险业:可视化大屏的光明未来

在当今不确定性充斥的世界中,保险行业扮演着关键的社会角色。无论是财产保险、健康保险还是生命保险,它们都提供了一种安全网,帮助个人和企业在不可预测的风险面前保护自己。然而,随着信息时代的来临,数据变得愈发重要…

FreeRTOS系统下看门狗定时器的使用总结

文章目录 前言定时器分类何为看门狗定时器 系统复位系统级看门狗SWDT的使用1.看门狗配置2、独立监测多任务方式 前言 本文记录自己使用看门狗定时器的过程,起因是系统不知名原因总是跑挂,查了很久找不到原因(排除了变量溢出、中断冲突等&…

解决找不到vcruntime140.dll无法执行代码的方法分享

在我们用电脑的过程中,总免不了碰到些问题,比如“找不到vcruntime140.dll”。这通常是我们在运行某些软件的时候,电脑找不到它需要的一个叫动态链接库的文件。这个问题有很多原因,比如软件安装的时候出了问题,系统文件…

2023上海初中生古诗文大会初选将于11月5日开始,划重点来了

好消息! 根据主办方通知,2023年上海市中学生古诗文大会(初中组),以下简称初中生古诗文大会,初选将于11月5日开始。 有许多家长和初中同学关心,初中生古诗文大会如何参加?考多长时间…

Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库

Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库 Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库安装 IndexDB类库引入 localForage测试 新增数据、获取数据 Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库 大部分场景使用 LocalStore都…

Windows域控制器的部署以及加入

域控制器:Windows Server 2022 域内主机:Windows7、Windows Server 2008 R2 安装部署预控 服务器管理器-添加角色和功能,一路下一步,到“服务器角色”,勾选“Active Directory 域服务”,一路下一步直到安…

审核 Microsoft SQL Server 日志

手动审核数据库活动是一项艰巨的任务,有效完成审计的最佳方法是使用简化和自动化数据库监控的综合解决方案,该解决方案还应使数据库管理员能够监控、跟踪和即时识别任何操作问题的根本原因,并实时检测对机密数据的未经授权的访问。 什么是 S…

基于SpringBoot+Vue实现前后端分离的房屋租赁系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

ARL灯塔安装与使用

ARL灯塔安装与使用 1. 系统要求2. ARL灯塔安装2.1. docker环境安装2.1.1. 更新yum包2.1.2. 卸载老版docker2.1.3. 安装docker所需要的依赖包2.1.4. 设置yum源2.1.5. 查看仓库中docker版本2.1.6. 安装docker最新版2.1.7. docker设置2.1.8. docker其它命令 2.2. 安装docker-compo…

世微 60V高端电流采样降压恒流驱动IC LED电源驱动器AP51656

1产品描述 AP51656是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED输入电压范围从 5 V 到 60V,输出电流 最大可达 1.5A 。根据不同的输入电压和 外部器件, 可以驱动高达数十瓦的 LED。 内置功率开关,采用高端…