ElasticSearch面试题
1.介绍下es的架构?
es采用的是分布式的架构,es集群中会有多个结点,而结点的角色主要有下面几种。
协调结点:
请求路由能力,将请求内容将请求转发给对应的结点进行处理。
master结点:
结点管理:处理结点的加入和离开
索引管理:负责索引的创建,删除,修改。以及索引分片的分配任务。
数据结点:
数据的存储和管理。管理包括处理数据的新增,修改,查询等请求。
2. 介绍下es的查询过程的相关知识?
es的查询过程分两段,先query,再fetch。
在query阶段,有协调结点向数据结点发出查询指令,数据结点会返回匹配的id和排序权重
在fetch阶段,协调结点会根据排序权重重新排序,确定当前查询需要返回的数据范围。再去数据结点fetch具体的数据。
es内部如何使用缓存来优化查询数据?
解答这个问题,需要先了解es中索引的结构。首先,es的索引类似于mysql中的表,是用来存储文档数据的。基于分布式的特点,es将一个索引划分成多个分片,来提高索引的读写性能。然后,分片中的数据又是由一个个的segment构成的。
那基于索引,分片,segment这样的结构,es中存在segment级别的缓存和分片级别的缓存,来提高查询的检索速度。
其中作为数据存放的基本单元,segment在生成之后,除了合并和删除的场景,其它情况是不会变更的。对索引中文档的修改操作,都是会存在新的segment中。查询的时候,对与不同segment中包含同样id的文档的情况,也是会优先展示更新的版本号的记录。segment上的数据比较稳定,也是适合使用缓存的。
es中的索引结构?
es中使用的是倒排序的索引结构,这种结构的玩法就是存放关键词和包含了关键词的文档的对应关系。可以想象成是一个map结构,key是关键词,value是一个列表,列表中存放了关键词出现的文档id。检索的复杂度是O(1),速度很快。当然,为了减少存储key所占有的空间。实际的存储结构会使用到前缀索引,可以减少重复字符占用的空间。
相关文章:
ElasticSearch面试题
1.介绍下es的架构? es采用的是分布式的架构,es集群中会有多个结点,而结点的角色主要有下面几种。 协调结点: 请求路由能力,将请求内容将请求转发给对应的结点进行处理。 master结点: 结点管理ÿ…...
C++ 数据结构知识点合集-C/C++ 数组允许定义可存储相同类型数据项的变量-供大家学习研究参考
#include <iostream> #include <cstring>using namespace std;// 声明一个结构体类型 Books struct Books {char title[50];char author[50];char subject[100];int book_id; };int main( ) {Books Book1; // 定义结构体类型 Books 的变量 Book1Books …...
【机器学习】5分钟掌握机器学习算法线上部署方法
5分钟掌握机器学习算法线上部署方法 1. 三种情况2. 如何转换PMML,并封装PMML2.1 什么是PMML2.2 PMML的使用方法范例3. 各个算法工具的工程实践4. 只用Linux的Shell来调度模型的实现方法5. 注意事项参考资料本文介绍业务模型的上线流程。首先在训练模型的工具上,一般三个模型训…...
Vue3-21-组件-子组件给父组件发送事件
情景描述 【子组件】中有一个按钮,点击按钮,触发一个事件, 我们希望这个事件的处理逻辑是,给【父组件】发送一条消息过去, 从而实现 【子组件】给【父组件】通信的效果。这个问题的解决就是 “发送事件” 这个操作。 …...
[密码学]AES
advanced encryption standard,又名rijndael密码,为两位比利时数学家的名字组合。 分组为128bit,密钥为128/192/256bit可选,对应加密轮数10/12/14轮。 基本操作为四种: 字节代换(subBytes transformatio…...
CentOS 7 部署pure-ftp
文章目录 (1)简介(2)准备工作(3)更新系统(4)安装依赖环境(5)下载和解压pure-ftp源码包(6)编译和安装pure-ftp(7࿰…...
Vue2-动态组件案例
1.component介绍 说明: Type: string | ComponentDefinition | ComponentConstructor Explanation: String: 如果你传递一个字符串给 is,它会被视为组件的名称,用于动态地渲染不同类型的组件。这是一个在运行时动态切换组件类型的常见用例。…...
【源码】车牌检测+QT界面+附带数据库
目录 1、基本介绍2、基本环境3、核心代码3.1、车牌识别3.2、车牌定位3.3、车牌坐标矫正 4、界面展示4.1、主界面4.2、车牌检测4.3、查询功能 5、演示6、链接 1、基本介绍 本项目采用tensorflow,opencv,pyside6和pymql编写,pyside6用来编写UI界…...
实战1-python爬取安全客新闻
一般步骤:确定网站--搭建关系--发送请求--接受响应--筛选数据--保存本地 1.拿到网站首先要查看我们要爬取的目录是否被允许 一般网站都会议/robots.txt目录,告诉你哪些地址可爬,哪些不可爬,以安全客为例子 2. 首先测试在不登录的…...
光栅化渲染:可见性问题和深度缓冲区算法
在前面第二章中,我们了解到,在投影点(屏幕空间中的点)的第三个坐标中,我们存储原始顶点 z 坐标(相机空间中点的 z 坐标): 当一个像素与多个三角形重叠时,查找三角形表面上…...
docker入门小结
docker是什么?它有什么优势? 快速获取开箱即用的程序 docker使得所有的应用传输就像我们日常通过聊天工具文件传输一样,发送方将程序传输到超级码头而接收方也只需通过超级码头进行获取即可,就像一只鲸鱼拖着货物来回运输一样。…...
LLM Agent发展演进历史(观看metagpt视频笔记)
LLM相关的6篇重要的论文,其中4篇来自谷歌,2篇来自openai。技术路径演进大致是:SSL (Self-Supervised Learning) -> SFT (Supervised FineTune) IT (Instruction Tuning) -> RLHF。 word embedding的问题:新词如何处理&…...
Linux(操作系统)面经——part2
1、请你说说进程和线程的区别 1.进程是操作系统资源分配和调度的最小单位,实现操作系统内部的并发;线程是进程的子任务,cpu可以识别、执行的最小单位,实现程序内部的并发。 2.一个进程最少有一个线程或有多个,一个线程…...
Flink系列之:WITH clause
Flink系列之:WITH clause 适用流、批提供了一种编写辅助语句以在较大查询中使用的方法。这些语句通常称为公共表表达式 (CTE),可以被视为定义仅针对一个查询而存在的临时视图。 WITH 语句的语法为: WITH <with_item_definition> [ , …...
JMeter直连数据库
JMeter直连数据库 使用场景操作步骤 使用场景 用作请求的参数化 登录时需要的用户名,密码可以从数据库中查询获取 用作结果的断言 添加购物车下订单,检查接口返回的订单号,是否与数据库中生成的订单号一致 清理垃圾数据 添加商品后ÿ…...
Linux部署MySQL5.7和8.0版本 | CentOS和Ubuntu系统详细步骤安装
一、MySQL数据库管理系统安装部署【简单】 简介 MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。 MySQL数据库可谓是软件行业的明星产品,无论是后端开发、…...
STL中set和multiset容器的用法(轻松易懂~)
目录 1. 基本概念 2. 构造和赋值 3. 大小和交换 4. 插入 和 删除 5. 统计 和 查找 6. set容器的排序 1. 基本概念 set和multiset属于关联式容器,底层结构式二叉树,所有元素都会在插入时自动排序。 如果你对容器的概念,或是二叉树不太了…...
Codeforces Round 915 (Div. 2)
Constructive Problems(Problem - A - Codeforces) 题目大意:现在有一片城市被摧毁了,需要进行重建,当一个城市水平相邻和竖直相邻的位置都至少有一个城市的时候,该城市可以被重建。所有城市排成n行m列的矩…...
C语言经典错误总结(三)
一.指针与数组理解 我们都知道定义一个数组然后对其进行各种想要的操作,但是你真的能够区分那些是对数组的操作,那些是通过指针实现的吗? 例如;arr[1]10;这个是纯粹对数组操作实现的吗? 答案肯定不是,实际上我们定义…...
Ubuntu系统入门指南:基础操作和使用
Ubuntu系统的基础操作和使用 一、引言二、安装Ubuntu系统三、Ubuntu系统的基础操作3.1、界面介绍3.2、应用程序的安装和卸载3.3、文件管理3.4、系统设置 四、Ubuntu系统的日常使用4.1、使用软件中心4.2、浏览器的使用和网络连接设置4.3、邮件客户端的配置和使用4.4、文件备份和…...
ArcGIS Pro脚本工具实战:一键自动化面要素数据质检与修复流程
1. 为什么需要自动化面要素质检工具 做GIS数据处理的朋友们应该都深有体会,每次拿到一批新的面要素数据,最头疼的就是要检查各种几何错误。传统的手动检查方式有多痛苦?我给大家列几个典型场景: 检查重叠要素要用拓扑工具…...
AI编码助手选型与实战:从Awesome List到高效开发工作流
1. 项目概述:一个AI编码时代的“藏宝图”如果你最近也在关注AI如何改变编程这件事,那你大概率已经听过“AI编码助手”或者“AI结对编程”这些词了。从GitHub Copilot到各种开源的代码生成模型,工具层出不穷,但问题也随之而来&…...
25岁入行编程,30岁实现财务自由:我的4步进阶法
作为一名软件测试从业者,你是否曾在反复的功能验证、bug回归中感到职业瓶颈?是否羡慕身边程序员的高薪与灵活发展路径?我曾和你一样,在测试岗位上摸爬滚打三年,25岁才下定决心转行编程,如今30岁已实现被动收…...
学Simulink——弱电网条件下双向DC-AC逆变器的鲁棒电流控制仿真
目录 手把手教你学Simulink——弱电网条件下双向DC-AC逆变器的鲁棒电流控制仿真 一、背景与挑战 1.1 什么是弱电网?为什么它“弱”? 1.2 核心痛点与鲁棒控制目标 二、系统架构与核心控制推导 2.1 整体架构:功率级(含 Lg&am…...
Rodauth部署与运维最佳实践:生产环境配置与故障排除终极指南
Rodauth部署与运维最佳实践:生产环境配置与故障排除终极指南 【免费下载链接】rodauth Rubys Most Advanced Authentication Framework 项目地址: https://gitcode.com/gh_mirrors/ro/rodauth Rodauth是Ruby生态系统中最先进的身份验证框架,专为生…...
5分钟掌握AI图像分层:layerdivider智能图像处理实战指南
5分钟掌握AI图像分层:layerdivider智能图像处理实战指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为复杂的图像分层工作而烦恼吗&a…...
72V混合DC/DC转换器技术解析与工程实践
1. 72V混合DC/DC转换器的技术突破在数据中心、通信基站和汽车电子领域,48V供电架构正逐步取代传统的12V总线系统。这种转变带来更高功率传输效率的同时,也对中间总线转换器(IBC)提出了严苛要求——需要在36V至72V宽输入范围内&…...
运行软件时提示找不到VCRUNTIME140_1.dll
运行软件时提示找不到VCRUNTIME140_1.dll前言解决办法说明参考前言 我们将cpp程序打包之后,放到别的电脑上,新电脑可能会提示: 运行软件时提示找不到VCRUNTIME140_1.dll 解决办法 根据电脑的型号,选择性的安装64位和32位的,如果你不懂电脑,那两个全都安装即可. https://aka.…...
【ElevenLabs情绪模拟技术深度解密】:20年AI语音工程师亲测的5大情感建模陷阱与避坑指南
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs情绪模拟技术深度解密 ElevenLabs 的情绪模拟并非简单调节语调或语速,而是通过多维度声学特征建模——包括基频(F0)动态包络、能量分布、共振峰偏移、微停…...
PyFluent:如何用Python代码将CFD仿真效率提升10倍?
PyFluent:如何用Python代码将CFD仿真效率提升10倍? 【免费下载链接】pyfluent Pythonic interface to Ansys Fluent 项目地址: https://gitcode.com/gh_mirrors/pyf/pyfluent PyFluent作为Ansys Fluent的Python原生接口,正在彻底改变C…...
