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

谈谈ES搜索引擎

一 ES的定义
ES 它的全称是 Elasticsearch,是一个建立在全文搜索引擎库Lucene基础上的一个开源搜索和分析引擎。ES 它本身具备分布式存储,检索速度快的特性,所以我们经常用它来实现全文检索功能。目前在 Elastic 官网对 ES 的定义,已经不再是 ElasticSearch 这一个组件了,而是指Elastic stack生态, Elastic stack 生态主要组件包括ElasticSearch、logstash、kibana,这三个经典组件合称为 ELK。在ELK这个组合里,ElasticSearch主要用来做数据存储,而Logstash 用来做数据采集,kibana主要用来做数据可视化的一个展示。在Elastic stack 生态中,应用最广泛的还是ElasticSearch。
在这里插入图片描述

二 ES为什么这么快?
为什么ES 在这么大数据场景下,表现得这么优秀呢?ES这么快,主要有以下几个原因:
(1)Lucene 本身擅长管理大量的索引致据,Lucene 会对数据进行分词以后,再去保存索引,这样能提升数据的检索效率;
(2)ES 采用了倒排索引的设计,所谓倒排索引就是通过属性来确定数据记录的位置索引,从而避免全表扫描的问题;
(3)ES 和很多分布式组件一样,设置了分片机制;
(4)ES的扩展性很好,它支持水平扩展,从而实现动态扩容,很好的提高了处理性能,它能够支持上百台服务器结点的扩展,并且能够支持TB级别的结构化和非结构化的数据。
(5)ES提供数据汇总和索引的生命周期管理,就更加便于高效的存储和检索数据。

三 ES使用注意事项
(1) 不建议用复杂的关联查询
(2) 避免深度的复杂的分页查询
分页通过from 和 size 的参致来实现的,也就是说在查询的时候,每个分片要预先构造一个长度为from +size 的优先队列,然后再回传到网关节点,网关结点再对这些优先队列进行排序,再找到正确的size文档,而当from 参数足够大的时候,会造成OOM(Out of Memory,内存溢出)以及网络传输性能下降的问题.

四、应用场景
ES的生态支持多种应用场景,包括但不限于:

日志实时分析:通过ELK Stack等工具,ES能够实时地收集和分析各种日志数据,帮助用户快速定位和解决问题。
搜索服务:ES提供强大的搜索能力,支持商品搜索、APP搜索、站内搜索等多种搜索场景,为用户提供快速、准确的搜索结果。
时序数据分析:ES能够处理高并发的时序数据,如服务器监控数据、应用性能监控数据等,并提供丰富的多维统计分析能力。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 云原生 | 在 Kubernetes 中使用 Cilium 替代 Calico 网络插件实践指南!
  • 线性代数|机器学习-P36在图中找聚类
  • 计算机网络-VRRP切换与回切过程
  • muduo 网络库学习项目引入 Boost 依赖
  • “设计模式双剑合璧:工厂模式与策略模式在支付系统中的完美结合”
  • JLabel设置字体大小颜色背景色
  • 数据结构与算法03 顺序表+链表
  • 数字化转型专家讲师培训师唐兴通中欧国际工商学院数字化转型战略与实现路径AIGC人工智能数字化战略数字商业模式创新
  • Docker 详解及详细配置讲解
  • Linux安装Jenkins详细步骤分解
  • 前向渲染路径
  • js 查找数组对象中id相同的元素,把他们放到新数组对象中
  • 【系统架构设计师】管道-过滤器架构
  • 【Redis】Redis 主从复制原理与配置详解:解决单点故障与性能瓶颈的最佳方案
  • c++的初始化列表与const成员
  • 0x05 Python数据分析,Anaconda八斩刀
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • es6(二):字符串的扩展
  • es6要点
  • PV统计优化设计
  • python 学习笔记 - Queue Pipes,进程间通讯
  • vuex 学习笔记 01
  • windows下mongoDB的环境配置
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 前端工程化(Gulp、Webpack)-webpack
  • 嵌入式文件系统
  • 一、python与pycharm的安装
  • 移动端解决方案学习记录
  • 用jQuery怎么做到前后端分离
  • 再次简单明了总结flex布局,一看就懂...
  • 白色的风信子
  • MyCAT水平分库
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​人工智能书单(数学基础篇)
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • (12)目标检测_SSD基于pytorch搭建代码
  • (4)STL算法之比较
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (js)循环条件满足时终止循环
  • (pojstep1.3.1)1017(构造法模拟)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (一)为什么要选择C++
  • (原創) 未来三学期想要修的课 (日記)
  • (转)详解PHP处理密码的几种方式
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net FrameWork简介,数组,枚举