当前位置: 首页 > news >正文

Elasticsearch面试系列-01

1. 什么是 Elasticsearch?

ES是一种开源、RESTful、可扩展的基于文档的搜索引擎,它构建在Lucene库上。

用户使用Kibana就可以可视化使用数据,同时Kibana也提供交互式的数据状态呈现和数据分析。

Apache Lucene搜索引擎基于JSON文档来进行搜索管理和快速搜索。

Elasticsearch,可简称为ES(官方未给出简称名字,很多人都这么叫而已)一种开源、RESTful、可扩展的基于文档的搜索引擎,构建是在Apache Lucene库的基础上的搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要发挥其强大的作用,需使用Java并要将其集成到应用中。

Elasticsearch是使用Java编写并使用Lucene来建立索引并实现搜索功能,但是它的目的是通过简单连贯的RESTful API让全文搜索变得简单并隐藏Lucene的复杂性。

用户通过JSON格式的请求,使用CRUD的REST API就可以完成存储和管理文本、数值、地理空间、结构化或者非结构化的数据。

Elasticsearch不仅是Lucene和全文搜索引擎,它还提供:

1、分布式的实时文件存储,每个字段都被索引并可被搜索 2、实时分析的分布式搜索引擎 3、可以扩展到上百台服务器,处理PB级结构化或非结构化数据,而且所有的这些功能被集成到一台服务器,应用可以通过简单的RESTful API、各种语言的客户端甚至命令行与之交互。

Elasticsearch非常简单,它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。开箱即用(安装即可使用),只需很少的学习既可在生产环境中使用。Elasticsearch在Apache 2 license下许可使用,可以免费下载、使用和修改。

2. Elasticsearch 安装前需要什么环境?

ElasticSearch是基于lucence开发的,也就是运行时需要java jdk支持。所以要先安装JAVA环境。

注意:由于ElasticSearch 5.x往后依赖于JDK 1.8及以上版本,安装高版本ES需要考虑与JDK版本的兼容性问题。ElasticSearch早期版本需要JDK,在7.X版本后已经集成JDK,已无需第三方依赖。

3. ElasticSearch 的节点类型有什么区别?

ElasticSearch的节点类型主要包括主节点(Master Node)、数据节点(Data Node)和客户端节点(Client Node)。这些节点类型在ElasticSearch集群中各自扮演着不同的角色,共同协作以支持集群的正常运行。

  1. 主节点:
  • 职责:主节点主要用于控制整个集群的操作,如创建或删除索引,管理其他非主节点等。集群中任何时候只能有一个主节点负责这些任务,但可以有多个候选主节点以防当前主节点失败。
  • 特点:主节点不参与数据的存储和检索操作,因此其硬件资源(如CPU、内存、磁盘)的要求相对较低。在大型集群中,通常会使用专用的主节点来提高集群的稳定性。
  1. 数据节点:
  • 职责:数据节点主要用于存储索引数据,并执行与数据相关的操作,如文档的增删改查(CRUD)、搜索和聚合等。数据节点的数量和性能直接影响Elasticsearch的数据处理能力。
  • 特点:数据节点对硬件资源的要求较高,特别是在处理大量数据和高并发请求时。因此,在优化Elasticsearch集群时,需要监控数据节点的状态,并根据需要添加新的数据节点。
  1. 客户端节点:
  • 职责:当主节点和数据节点配置都设置为false的时候,该节点只能处理路由请求,处理搜索,分发索引操作等。它本质上是一个智能负载平衡器,协调主节点和数据节点的工作。客户端节点加入集群后可以获取集群的状态,并根据集群状态直接路由请求。
  • 特点:客户端节点不存储数据,也不参与数据的索引和检索操作。它主要用于处理来自客户端的请求,并将请求分发到合适的数据节点进行处理。因此,客户端节点的硬件资源要求相对较低。

总的来说,ElasticSearch的节点类型在职责和特点上有所区别。主节点负责集群的控制和管理,数据节点负责数据的存储和检索,而客户端节点则负责协调和处理客户端请求。这些节点类型共同协作,使得ElasticSearch集群能够高效地处理大量数据和高并发请求。

4. 说说 ElasticSearch 生产集群节点分配方案?

1、针对节点按照分工职责进行划分;

2、生产集群建议部署3台以上单独作为master节点,只负责成为主节点,维护整个集群的状态。

3、设置一批data节点,负责存储数据、建立索引和查询索引服务。对磁盘,内存要求相对较高。

4、设置一批client节点,只负责处理用户请求,实现请求转发,负载均衡等功能。<

相关文章:

Elasticsearch面试系列-01

1. 什么是 Elasticsearch? ES是一种开源、RESTful、可扩展的基于文档的搜索引擎,它构建在Lucene库上。 用户使用Kibana就可以可视化使用数据,同时Kibana也提供交互式的数据状态呈现和数据分析。 Apache Lucene搜索引擎基于JSON文档来进行搜索管理和快速搜索。 Elasticse…...

QT tableWidget横向纵向设置

横向控件 要设置QTabWidget选项卡的字体方向&#xff0c;可以使用QTabWidget的setTabPosition()方法。通过传递Qt枚举值QTabWidget.east或QTabWidget.west作为参数&#xff0c;可以设置选项卡的字体方向为从左到右或从右到左。 myTabWidget QTabWidget() myTabWidget.setTabP…...

Unity Mesh简化为Cube mesh

Mesh简化为Cube mesh &#x1f373;食用&#x1f959;子物体独立生成CubeMesh&#x1f96a;合并成一个CubeMesh&#x1f32d;Demo &#x1f373;食用 下载并导入插件&#x1f448;即可在代码中调用。 &#x1f959;子物体独立生成CubeMesh gameObject.ToCubeMesh_Invidual()…...

openGauss学习笔记-249 openGauss性能调优-使用Plan Hint进行调优-Join顺序的Hint

文章目录 openGauss学习笔记-249 openGauss性能调优-使用Plan Hint进行调优-Join顺序的Hint249.1 功能描述249.2 语法格式249.3 参数说明249.4 示例 openGauss学习笔记-249 openGauss性能调优-使用Plan Hint进行调优-Join顺序的Hint 249.1 功能描述 指明join的顺序&#xff0…...

大规模预训练语言模型的可解释性研究与实践

1. 背景介绍 随着深度学习技术的发展&#xff0c;大规模预训练语言模型&#xff08;Large-scale Pre-trained Language Models, LPLMs&#xff09;在自然语言处理领域取得了显著的成果。这些模型通常通过在大规模文本语料库上进行无监督预训练&#xff0c;然后微调到特定任务上…...

Rust常用库之序列化和反序列化库serde(使用 Serde 处理json)

文章目录 Rust常用库之序列化和反序列化库serde&#xff08;使用 Serde 处理json&#xff09;什么是serde库设计使用 Serde 处理jsonr# 的使用 参考 Rust常用库之序列化和反序列化库serde&#xff08;使用 Serde 处理json&#xff09; 什么是serde库 官网&#xff1a;https:/…...

java设计模式(2)---六大原则

设计模式之六大原则 这篇博客非常有意义&#xff0c;希望自己能够理解的基础上&#xff0c;在实际开发中融入这些思想&#xff0c;运用里面的精髓。 先列出六大原则&#xff1a;单一职责原则、里氏替换原则、接口隔离原则、依赖倒置原则、迪米特原则、开闭原则。 一、单一职…...

数学建模(层次分析法 python代码 案例)

目录 介绍: 模板: 例题:从景色、花费、饮食,男女比例四个方面去选取目的地 准则重要性矩阵: 每个准则的方案矩阵:​ 一致性检验: 特征值法求权值: 完整代码: 运行结果: 介绍:...

Gitlab介绍

1.什么是Gitlab GitLab是一个流行的版本控制系统平台&#xff0c;主要用于代码托管、测试和部署。 GitLab是基于Git的一个开源项目&#xff0c;它提供了一个用于仓库管理的Web服务。GitLab使用Ruby on Rails构建&#xff0c;并提供了诸如wiki和issue跟踪等功能。它允许用户通…...

Amuse .NET application for stable diffusion

Amuse github地址&#xff1a;https://github.com/tianleiwu/Amuse .NET application for stable diffusion, Leveraging OnnxStack, Amuse seamlessly integrates many StableDiffusion capabilities all within the .NET eco-system Welcome to Amuse! Amuse is a profes…...

【机器学习-05】模型的评估与选择

在前面【机器学习-01】机器学习基本概念与建模流程的文章中我们已经知道了机器学习的一些基本概念和模型构建的流程&#xff0c;本章我们将介绍模型训练出来后如何对模型进行评估和选择等 1、 误差与过拟合 学习器对样本的实际预测结果与真实值之间的差异&#xff0c;我们称之…...

【11】工程化

一、为什么需要模块化 当前端工程到达一定规模后,就会出现下面的问题: 全局变量污染 依赖混乱 上面的问题,共同导致了代码文件难以细分 模块化就是为了解决上面两个问题出现的 模块化出现后,我们就可以把臃肿的代码细分到各个小文件中,便于后期维护管理 前端模块化标准…...

Python中requests、aiohttp、httpx性能对比

在Python中&#xff0c;有许多用于发送HTTP请求的库&#xff0c;其中最受欢迎的是requests、aiohttp和httpx。这三个库的性能和功能各不相同&#xff0c;因此在选择使用哪个库时&#xff0c;需要考虑到自己的需求和应用场景。 首先&#xff0c;让我们来了解一下这三个库的基本…...

网络原理(5)——IP协议(网络层)

目录 一、IP协议报头介绍 1、4位版本 2、4位首部长度 3、8位服务器类型 4、16位总长度 5、16位标识位 6、3位标志位 7、13位偏移量 8、8位生存空间 9、8位协议 10、16位首部检验和 11、32位源IP地址 12、32位目的IP地址 二、IP协议如何管理地址&#xff1f; 1、动…...

GE IS200AEPAH1BKE IS215WEPAH2BB是两种不同的压力测量模块

GE IS200AEPAH1BKE和IS215WEPAH2BB是两种不同的压力测量模块&#xff0c;它们都属于GE&#xff08;通用电气&#xff09;公司的产品。 具体来说&#xff0c;以下是这两种模块的一些特点和应用&#xff1a; IS200AEPAH1BKE&#xff1a;这款模块适用于需要高性价比的压力测量应用…...

Rust 与 C++ ,孰优孰劣?

Rust 与 C 是两种高级系统级编程语言&#xff0c;它们都在追求性能、控制底层硬件细节的同时强调安全性。以下是两者的详细对比&#xff1a; 目标与理念 Rust&#xff1a;由 Mozilla 主导开发&#xff0c;目标是构建一种既快速又安全的系统级编程语言&#xff0c;特别是解决 C…...

MySQL、Oracle的时间类型字段自动更新:insert插入、update更新时,自动更新时间戳

1.MySQL 支持的字段类型&#xff1a;DATETIME、TIMESTAMP drop table if exists test_time_auto_update; create table test_time_auto_update (id bigint auto_increment primary key comment 自增id,name varchar(8) …...

Testng框架集成新业务

总体框架设计见我另一篇博客&#xff1a;httpclienttestng接口自动化整体框架设计 <block&#xff1a;表示测试用例块> block后面是 测试用例的名称 ||接口名,该接口名在URL.txt里维护接口 ||get\post&#xff1a;表示请求的方法 get_1\2\3\4&#xff1a;代表加密 get: …...

springboot 单元测试

Spring Boot 单元测试是确保代码质量的重要部分&#xff0c;它允许我们在不实际启动整个应用的情况下测试我们的代码。在Spring Boot中&#xff0c;我们通常使用Spring Test模块和JUnit测试框架来编写单元测试。以下是一个简单的Spring Boot单元测试的详细代码介绍&#xff1a;…...

LeetCode---126双周赛

题目列表 3079. 求出加密整数的和 3080. 执行操作标记数组中的元素 3081. 替换字符串中的问号使分数最小 3082. 求出所有子序列的能量和 一、求出加密整数的和 按照题目要求&#xff0c;直接模拟即可&#xff0c;代码如下 class Solution { public:int sumOfEncryptedInt…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...