Elasticsearch(01)

Elasticsearch(ES)作为被广泛地知道是一个开源搜索引擎,在开始了解ES之前,我们先对自己问几个问题。
为什么需要这样一个技术?
在日常工作中ES解决了什么问题,这些问题用现有技术无法解决么?
ES是如何解决上述这一类问题的?
ES在解决上述问题时,又会有什么局限?

Q1.数据库字段太多,查询太慢,索引没有办法再做优化
Q2.数据库一个count就拖死全表
Q3.mysql的limit翻到几十几百万页后实在是太慢
Q4.数据库like实在太慢,每次like整个服务器cpu内存飙高,拖慢整个线上服务
Q5.想要对外/内提供db里的数据的全文检索服务
Q6.提供日志(程序运行)查询功能

在最流行的innodb之类的存储引擎在计算count的时候非常的慢。
还有mysql的like,其实没什么玄幻的,每次做like本质还是查询内容去和数据库字段做字符串匹配。非常地慢。
企业里对数据的查询一般可以分为三种:列表查询、详情查询和统计查询。看名字也可以理解的差不多了,列表一般就是列表页对应的查询,详情查询一般就是具体id对应的详情查询,而统计查询一般都是在看一些数值之类的报表,也就是一堆count值。

这三种查询里,mysql做起来最困难的是1和3,即列表查询和统计查询。列表查询这种场景也会对应各种各样的查询条件,例如字段等于/小于/大于/不等判断,或者像字符串的严格匹配/前后缀模糊查询

ES数据架构的主要概念(与关系数据库Mysql对比)


image.png

ELK是什么?
ELK=elasticsearch+Logstash+kibana
elasticsearch:后台分布式存储以及全文检索
logstash: 日志加工、“搬运工”
kibana:数据可视化展示。
ELK架构为数据分布式存储、可视化查询和日志解析创建了一个功能强大的管理链。 三者相互配合,取长补短,共同完成分布式大数据处理工作。

ES官方的中文视频:https://www.elastic.co/cn/webinars/getting-started-elasticsearch?baymax=rtp&storm=learn

ES官方的英文文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/_cluster_health.html

ES官方中文文档:
https://www.elastic.co/guide/cn/elasticsearch/guide/current/query-dsl-intro.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容