最近在准备面试,正把平时积累的笔记、项目中遇到的问题与解决方案、对核心原理的理解,以及高频业务场景的应对策略系统梳理一遍,既能加深记忆,也能让知识体系更扎实,供大家参考,欢迎讨论。

一、核心优势

Elasticsearch可以实现秒级的搜索,cluster(集群)分布式部署,极易扩展,这样很容易使它处理PB级的数据库容量。最重要的是Elasticsearch使它搜索的结果可以按照分数进行排序,它能提供我们最相关的搜索结果(relevance-相关性)。

二、主要特点

  1. 安装方便:没有其他依赖,下载后安装非常方便;只用修改几个参数就可以搭建起来一个集群(工作中一般使用阿里云等云厂商的ES服务,很少有自己搭建的)

  2. JSON格式:输入/输出格式为JSON,意味着不需要定义Schema,快捷方便

    • Schema(模式)通常指的是一种描述数据结构的规范或定义。它定义了数据的组织方式、字段的类型以及数据之间的关系。使用模式能够确保数据的一致性、完整性和有效性,并为数据的生成、解析、验证提供了标准
  3. RESTful接口:基本所有操作(索引、查询、甚至是配置)都可以通过HTTP接口进行

  4. 分布式架构:节点对外表现对等(每个节点都可以用来做入口),加入节点自动负载均衡

  5. 多租户支持:可根据不同的用途分索引,可以同时操作多个索引

    • 共享底层资源、逻辑隔离上层数据、支持并行操作
    • 在Elasticsearch中,多租户模式通常涉及根据不同的用途或不同的用户组织创建不同的索引,使得这些索引能够彼此独立存在,而且可以同时操作多个索引。这样的设计允许不同的用户、组织或应用程序在同一个Elasticsearch集群中使用各自的索引,实现数据的隔离和独立管理
  6. 大数据支持:可以扩展到PB级的结构化和非结构化数据,支持海量数据的近实时处理

三、核心功能

  1. 分布式搜索引擎
    • 自动将海量数据分散到多台服务器上去存储和检索
  2. 全文检索
    • 提供模糊搜索等自动化程度很高的查询方式,并进行相关性排名,高亮等功能
  3. 数据分析引擎(分组聚合)
    • 适用于社区网站等场景的最近一周用户登录、最近一个月各功能使用情况等分析
  4. 近实时处理
    • 对海量数据进行近实时(秒级)的处理,采用分布式架构实现水平扩展

四、应用场景

  1. 搜索类场景
    • 人员检索、设备检索、App内的搜索、订单搜索、IM消息搜索
  2. 日志分析类场景
    • 经典的ELK组合(Logstash/Elasticsearch/Kibana),实现日志收集,日志存储,日志分析
  3. 数据预警平台及数据分析场景
    • 例如社区团购提示,当优惠的价格低于某个值时,自动触发通知消息
    • 分析竞争对手商品销量Top10,供运营分析
  4. 商业智能(BI)系统
    • 分析某一地区用户消费金额及商品类别,输出相应的报表数据
    • 预测该地区的热卖商品,通过区域和人群特征划分进行定向推荐
    • Elasticsearch执行数据分析和挖掘,Kibana做数据可视化

五、竞品对比

  1. Lucene
    • Java编写的信息搜索工具包(Jar包),只是一个框架,熟练运用非常复杂
  2. Solr
    • 基于Lucene的HTTP接口查询服务器,是一个封装了很多Lucene细节的搜索引擎系统
  3. Elasticsearch
    • 基于Lucene的分布式海量数据近实时搜索引擎,采用的策略是将每一个字段都编入索引,使其可以被搜索

对比

  1. Solr利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能
  2. Solr比Elasticsearch实现更加全面,而Elasticsearch本身更注重于核心功能,高级功能多由第三方插件提供
  3. Solr在传统的搜索应用中表现好于Elasticsearch,而Elasticsearch在实时搜索应用方面比Solr表现好

当前版本信息

  • 目前主流依然是Elasticsearch7.x,最新的是7.8,推荐使用JDK11(LTS),也兼容JDK8,目前工作中用到的
  • 优化:集成默认JDK、升级Lucene8大幅提升TopK性能、引入熔断机制避免OOM发生
    • 集成默认JDK:确保Elasticsearch版本与JDK版本兼容
    • 升级Lucene8:带来性能提升,但需确保版本匹配
    • 引入熔断机制:避免OOM错误,需合理配置参数

六、多租户架构

  1. 概念
    • 允许单一软件实例同时为多个租户提供服务,每个租户拥有独立空间和资源
  2. Elasticsearch中的实现
    • 通过不同索引为每个租户分隔数据
    • 提供RBAC和索引别名实现权限管理和操作灵活性
  3. 关键要素
    • 租户:独立使用者或实体
    • 索引隔离:为每个租户分配独立的索引空间(单个或多个索引)
    • 权限控制:管理各租户数据访问权限
    • 资源隔离:保障各租户资源配额

七、字段索引控制

  1. 索引设置选项
    • “index”: true:默认设置,字段会被分析以支持全文搜索
    • “index”: false:不对该字段建立索引,适用于不需要搜索的字段
    • “index”: “no”:早期版本中表示不建立索引(与false相似)
  2. 应用场景
    • 对不需要进行搜索的字段禁用索引,可减少存储空间并提高索引构建速度

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

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

相关文章

力扣115:不同的子序列

力扣115:不同的子序列题目思路代码题目 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数。 测试用例保证结果在 32 位有符号整数范围内。 思路 首先我们来考虑特殊情况,当s串的长度小于t串时s串肯定就没有t串了。其他情况我们就需…

2004-2023年各省生活垃圾无害化处理率数据(无缺失)

2004-2023年各省生活垃圾无害化处理率数据(无缺失) 1、时间:2004-2023年 2、来源:国家统计局、统计年鉴 3、指标:生活垃圾无害化处理率 4、范围:30省 5、指标解释:生活垃圾无害化处理率指报…

【Python练习题】Python小白必练100题答案-第21-40题

练习题直达链接Python小白必练100题答案-第1-20题点我直达Python小白必练100题答案-第21-40题点我直达Python小白必练100题答案-第41-60题点我直达Python小白必练100题答案-第61-80题点我直达Python小白必练100题答案-第81-97题点我直达目录专栏导读循环结构 字符串操作第三部…

添加⽂件--场景⼆

添加⽂件–场景⼆ 学习到这⾥,我们已经清楚了如何向仓库中添加⽂件,并且对于⼯作区、暂存区、版本库也有了⼀定的认识。那么我们再展⽰⼀种添加⽂件的场景,能加深对⼯作区、暂存区、版本库的理解,⽰例如下: roothcss-e…

华为网路设备学习-31(BGP协议 六)

BGP路由属性的几种常见使用方法: 29章是 BGP路由汇总 与 as-path-filter(正则表达式) 30章是 Community 的使用方法 本章是 ip前缀列表ip-prefix 、 路由过滤 filter-policy 和路由策略 route-policy 一、在BGP中的 ip前缀列表&#xf…

Windows PostgreSQL JDBC驱动安装包位置

要在Windows系统上获取PostgreSQL JDBC驱动安装包(后缀为.jar的文件),可通过以下官方及常用渠道获取,具体位置如下: ###🔧 1. 官方网站下载(推荐) 下载地址:https://jdb…

机器学习从入门到精通 - 聚类算法大比拼:K-Means、DBSCAN实战与评估陷阱

机器学习从入门到精通 - 聚类算法大比拼:K-Means、DBSCAN实战与评估陷阱 开场白:推开无监督学习的大门 朋友们,不知道你们有没有对着堆积如山、没有标签的数据发过愁?想从里面找出点规律,分组什么的,结果发…

AI 重构内容创作:从文案生成到视频剪辑,创作者该如何与 AI 协同共生?

一、引言:AI 掀起内容创作的 “重构浪潮”​行业现象引入:列举 AI 在内容创作领域的爆发式应用案例(如某平台 AI 文案工具日生成量破百万、AI 视频剪辑软件用户增长超 300%)​创作者需求变化:通过调研数据说明创作者对…

后端一次性返回十万条数据时,前端需要采用多种性能优化策略来避免页面卡顿

当后端一次性返回十万条数据时,前端需要采用多种性能优化策略来避免页面卡顿。以下是主要的优化方案: 分页加载 - 将数据分批次加载显示虚拟滚动 - 只渲染可视区域内的数据数据懒加载 - 按需加载数据Web Workers - 在后台线程处理数据时间切片 - 分散渲染…

基于-轻量级文档搜索系统的测试报告

文章目录一、项目背景二、项目功能三、测试计划(一)测试用例设计(二)测试用例实现1.功能测试2.界面测试3.兼容性测试4.易用性测试5.安全性测试一、项目背景 1.基于轻量级文档检索系统采用C技术栈来实现,同时使用了本地…

编辑器vim(Linux)

Linux下开发工具是独立的写代码——编辑器 vim编译代码——gcc/g调试——gdb、cgdb构建工具——makefile、make、cmakevim只用来写代码注意:直接用vim打开一个不存在的文件并保存退出,就会自动生成该文件vim有多种模式命令模式(Normal Mode&a…

GitLab,2025最新如何配置中的SSH key步骤

电脑右键先检查,是否有公钥 git cat ~/.ssh/id_rsa.pub下面是有,不用生成公钥,没有就要生成生成本地电脑公钥, 建议用第二种 //第一种ssh-keygen -t rsa//第二种------- 1.打开git bash,输入:ssh-keygen -t rsa -C “你的邮箱”ss…

华为HCIE证书多久续一次费?费用多少?

根据华为官方政策,华为认证HCIE的有效期为3年,有效期自证书正式发放之日起计算,考生可通过华为人才在线官网登录个人账号,在“我的证书”栏目中查询具体有效期起止时间。一、HCIE证书到期后的续证方式 1.重考对应HCIE的认证考试&a…

提升文本到图像强化学习稳定性:Pref - GRPO算法如何革新图像生成?

提升文本到图像强化学习稳定性:Pref - GRPO算法如何革新图像生成? 在文本到图像生成领域,强化学习正重塑着模型与人类偏好的对齐方式。本文聚焦于一种创新的基于成对偏好奖励的GRPO方法(Pref - GRPO),它通…

Linux UDisks守护进程曝本地提权漏洞CVE-2025-8067,PoC已发布

漏洞概述安全研究人员在Linux环境中广泛使用的磁盘管理组件UDisks守护进程中,发现了一个严重漏洞(编号CVE-2025-8067,CVSS评分8.5)。该漏洞已报告给红帽产品安全团队,并在UDisks更新版本中得到修复。技术细节该漏洞存在…

uniapp 开发上架 iOS App全流程

操作文档网址:https://ask.dcloud.net.cn/article/152 操作学习视频地址:uniapp打包上线微信小程序、安卓、IOS流程_哔哩哔哩_bilibili 第一步:注册苹果 iOS 个人开发者账号 费用说明 ‌个人开发者账号‌:适用于独立开发者或小…

Sqlsugar补充自定义模板

DBFirst默认创建所有实体CreateClassFile()的第二个参数为生成实体类命名空间//.net6以下 db.DbFirst.IsCreateAttribute().CreateClassFile("c:\\Demo\\1", "Models"); //.net6以上 string加? db.DbFirst.IsCreateAttribute().StringNullable().CreateCl…

LeetCode 392.判断子序列

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列&#x…

逻辑回归:从原理到实战的完整指南

在机器学习中,分类任务是最常见的应用场景之一。而逻辑回归(Logistic Regression),尽管名字中有“回归”,实际上是一种非常强大且广泛应用的二分类模型。它简单、高效、可解释性强,是数据科学初学者入门分类…

鸿蒙搭配前端开发:应用端与WEB端交互

鸿蒙系统(HarmonyOS)是华为开发的一款面向全场景的分布式操作系统,其设计初衷是为了适应物联网时代的需求,旨在构建一个统一的操作系统,支持多种设备的无缝协同工作。其分布式开发的一些主要优势: 跨设备协…