elasticSearch常见的面试题

常见的面试问题

描述使用场景

es集群架构3个节点,根据不同的服务创建不同的索引,根据日期和环境,平均每天递增60*2,大约60Gb的数据。

调优技巧

原文参考:干货 | BAT等一线大厂 Elasticsearch面试题解读 - 掘金

设计阶段的调优

  1. 根据业务增长的需求,采取日期模版创建索引,通过roll over API实现滚动索引

定义条件,生成新的索引,但都指向一个别名

https://juejin.cn/post/6959744054905012231

  1. 根据别名对索引进行管理

  2. 凌晨对索引进行force_merge操作,释放空间

合并Lucene索引在每个分片中保存的分段数,强制合并减少分片中的分段数量

https://blog.csdn.net/weixin_43820556/article/details/122986027

  1. 冷热分离机制,热数据放在SSD,冷数据定期shrink操作,缩减存储

删除副本,只读索引,减少主分片的数量

https://blog.csdn.net/UbuntuTouch/article/details/109004225

  1. 使用curator进行索引的生命周期管理

对索引和快照进行管理,配置规则,定时任务调用

https://cloud.tencent.com/developer/article/1382110

  1. 仅针对需要分词的字段,选用合适的分词器

  2. Mapping阶段充分结合各个字段的属性,是否要检索、存储

写入调优

  1. 写入前refresh_interval=-1

默认情况下索引的refresh_interval为1秒,这意味着数据写1秒后就可以被搜索到,每次索引的 refresh 会产生一个新的 lucene 段,这会导致频繁的 segment merge 行为,如果你不需要这么高的搜索实时性,应该降低索引refresh 周期

  1. 采用bulk批量写入

  2. 使用自动生成的id

写入 doc 时如果是外部指定了 id,es 会先尝试读取原来doc的版本号, 判断是否需要更新,使用自动生成 doc id 可以避免这个环节

查询调优

  1. 禁用批量terms(分页)
  2. 数据量大时,先基于时间范围检索
  3. 充分利用倒排索引机制,keyword查询
  4. 合理的路由机制

索引数据多的调优和部署

动态索引

基于模板+时间+rollover api 滚动创建索引

存储层面

冷热数据分离存储,冷数据force_merge+shrink压缩

部署层面

合理的前期规划,动态增加节点缓解集群压力

master选举机制

基本前提

  1. 候选主节点才能成为主节点
  2. 最小主节点数防止脑裂
选举流程

索引文档流程

在这里插入图片描述

文档获取分片

文档id计算目标分片id

shard = hash(_routing) % (num_of_primary_shards)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++QT教程2——创建QT项目

文章目录 2 创建Qt项目2.1 使用向导创建2.2 手动创建2.3 .pro文件2.4 一个最简单的Qt应用程序main入口函数中(main.cpp)arnold_widget.h函数arnold_widget.cpp 参考文章 2 创建Qt项目 2.1 使用向导创建 打开Qt Creator 界面选择 New Project或者选择菜…

SAP MM学习笔记15-物料调达中的Master数据(2)-品目Master

SAP中做一个购买发注的时候,涉及到以下Master数据: 1,仕入先Master(供应商):跟谁买 2,品目Master(物料):买什么 3,购买情报:什么价…

Python selenium对应的浏览器chromedriver版本不一致

1、chrome和chromedriver版本不一致导致的,我们只需要升级下chromedriver的版本即可 浏览器版本查看 //打开google浏览器直接访问,查看浏览器版本 chrome://version/ 查看chromedriver的版本 //查看驱动版本 chromedriver chromedriver下载 可看到浏…

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

Paypal是传统支付领域的巨头企业,在北美支付市场占有率约为77%以上。从具体的业务数据看,在8月初,Paypal公布的2023年第二季度财报显示,PayPal第二季度净营收为73亿美元,净利润为10.29亿美元。虽然Paypal的净利润相交去…

按轨迹运行(纯跟踪)

文章目录 import numpy as np import math import matplotlib.pyplot as pltk = 0.1 # 前视距离系数 Lfc = 2.0 # 前视距离 Kp = 1.0 # 速度P控制器系数 dt = 0.1 # 时间间隔,单位:s L = 2.9 # 车辆轴距,单位:mdef plot_arrow(x, y, yaw, length=5, width=1):dx = len…

css小练习:案例6.炫彩加载

一.效果浏览图 二.实现思路 html部分 HTML 写了一个加载动画效果&#xff0c;使用了一个包含多个 <span> 元素的 <div> 元素&#xff0c;并为每个 <span> 元素设置了一个自定义属性 --i。 这段代码创建了一个简单的动态加载动画&#xff0c;由20个垂直排列的…

小程序的api使用 以及一些weui组件实列获取头像 扫码等

今日目标 响应式单位rpx小程序的生命周期 【重点】20%小程序框架 weui 【重点】 50%内置API 【重点】30%综合练习 1. 响应式rpx 1.1 rpx单位 rpx是微信小程序提出的一个尺寸单位&#xff0c;将整个手机屏幕宽度分为750份&#xff0c;1rpx 就是 1/750&#xff0c;避免不同手…

漫画 | TCP/IP之大明邮差

后记&#xff1a; 1973年&#xff0c;卡恩与瑟夫开发出了网络中最核心的两个协议&#xff1a;TCP协议和IP协议&#xff0c;随后为了验证两个协议的可用性&#xff0c;他们做了一个实验&#xff0c;在多个异构网络中进行数据传输&#xff0c;数据包在经过近10万公里的旅程后到达…

windows永久关闭更新

不要去services.msc 服务里面关闭windowUpdata了&#xff0c;对win11和部分win10根本不管用&#xff0c;下面在教你一招永久关闭&#xff08;原理不是关闭&#xff0c;只是延长更新时间&#xff0c;时间可以设置百年后&#xff0c;所以和关闭差不多&#xff09; windows图形化…

ModaHub魔搭社区:大模型落地需要“记忆力”,这家公司想为向量数据库Milvus Cloud正名

现实生活中若两人进行对话,大致需要三步流程:一方首先抛出话题作引子;另一方会先调动记忆判断自己是否了解这个话题,然后再分析给出应该做出何种回答。如此循环往复直到互动结束,而此次对话又会作为一种新的“记忆”被双方吸收。 为让计算机完成这样的互动过程,并持续…

acwing第 115 场周赛第二题题解:维护最大值和次大值

一、链接 5132. 奶牛照相 二、题目 约翰的农场有 nn 头奶牛&#xff0c;编号 1∼n1∼n。 其中&#xff0c;第 ii 头奶牛的宽度为 wiwi&#xff0c;高度为 hihi&#xff0c; 有一天&#xff0c;它们聚餐后决定拍照留念。 关于拍照的描述如下&#xff1a; 它们一共拍了 nn…

【Linux初阶】基础IO - 动静态库 | 初识、生成、链接、加载

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;动静态库初识&#xff0c;库的含义&#xff0c;静态库的生成与链接&#xff0c;gcc/g默认链接方式&#xff0c…

Grafana V10 告警推送

最近项目建设完成&#xff0c;一个城域网项目&#xff0c;相关zabbix和grafana展示已经完&#xff0c;想了想&#xff0c;不想天天看平台去盯网络监控平台&#xff0c;索性对告警进行分类调整&#xff0c;增加告警的推送&#xff0c;和相关部门的提醒&#xff0c;其他部门看不懂…

C语言经典小游戏之三子棋(超详解释+源码)

“纵有疾风来&#xff0c;人生不言弃&#xff0c;风乍起&#xff0c;合当奋意向此生。” 今天我们一起来学习一下三子棋小游戏用C语言怎么写出来&#xff1f; 三子棋小游戏 1.游戏规则介绍2.游戏准备3.游戏的实现3.1生成菜单3.2游戏的具体实现3.2.1初始化棋盘3.2.2打印棋盘3.2…

rv1109/1126 rknn 模型部署过程

rv1109/1126是瑞芯微出的嵌入式AI芯片&#xff0c;带有npu, 可以用于嵌入式人工智能应用。算法工程师训练出的算法要部署到芯片上&#xff0c;需要经过模型转换和量化&#xff0c;下面记录一下整个过程。 量化环境 模型量化需要安装rk的工具包&#xff1a; rockchip-linux/rk…

FineBI 人力资源 专题

此处使用FineBI处理人力资源数据&#xff0c;数据来源于HR_database数据文件&#xff0c;将此文件拷贝到安装目录下 然后配置数据库连接 在【公共数据】中新建一个文件夹&#xff0c;并将之前数据库中需要用到的表放入此处&#xff0c;更新数据。显示如下。 这时候首先要建立…

Flutter 自定义view

带进度动画的圆环。没gif&#xff0c;效果大家自行脑补。 继承CustomPainter&#xff0c;paint()方法中拿到canvas&#xff0c;绘制API和android差不多。 import package:flutter/material.dart;class ProgressRingPainter extends CustomPainter {double strokeWidth 20;Col…

【网络技术】TCP详解

1 TCP是什么 TCP是Transmission Control Protocol的缩写&#xff0c;即传输控制协议。 TCP是一种面向连接的、可靠的、基于字节流的传输协议&#xff0c;是互联网通信协议TCP/IP中的一个重要组成部分。 2 三次握手 三次握手的过程可以用以下图示表示&#xff1a; 2.1 详细介绍…

《算法竞赛·快冲300题》每日一题:“连接草坪(II)”

《算法竞赛快冲300题》将于2024年出版&#xff0c;是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码&#xff0c;以中低档题为主&#xff0c;适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 连…

[Docker实现测试部署CI/CD----自由风格的CI操作[中间架构](4)]

目录 10、自由风格的CI操作&#xff08;中间架构&#xff09;中间架构图创建web项目Idea提交项目到远程仓库提交代码到本地库提交代码到远程库从jenkins拉取代码新建任务jenkins集成gitlab立即构建 将项目打为jar包Jenkins 配置 mvn 命令重新构建 代码质量检测jenkins将代码推送…