关于“谈谈你对 ES 的理解”

普通人
它是一个基于 Apache Lucene 开源的一个分布式搜索引擎框架。 一般用它来做
● 日志记录和分析
● 公共数据采集
● 全文检索
● 数据可视化分析等等
高手
Elasticsearch ,简称 ES 。它是建立在全文搜索引擎库 Apache Lucene 基础之上的一个开源的搜索引擎,也可以作为 NoSQL 数据库,存储任意格式的文档和数据。也可以做大数据的分析,是一个跨界开源产品。
它最主要的应用场景是 ELK 的日志分析系统。
另外它还有以下特点:
1. 第一、采用 Master-slave 架构,实现数据的分片和备份
2. 第二、使用 Java 编写,并对 Lucene 进行封装,隐藏了 Lucene 的复杂性
3. 第三、能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
4. 第四、ES 提供的 Restful API,不仅简化了 ES 的操作,还支持任何语言的客户端
提供 API 接口,另外 Restful API 的风格还实现了 CURD 操作、创建索引,删除索
引等功能。 在 ES 的使用上我也有一些经验心得,比如:
1. es 里面复杂的关联查询尽量别用,一旦用了性能都不太好。最好是先在 Java 系统
里就完成关联,将关联好的数据直接写入 ES 中
2. 避免一些太复杂的操作,比如 join/nested/parent-child 搜索,不然容易出现性
能问题。
3. 避免深分页查询,ES 集群的分页查询支持 from 和 size 参数,查询的时候,每个
分片必须构造一个长度为 from+size 的优先队列,然后回传到网关节点,网关节
点再对这些优先队列进行排序找到正确的 size 文档。当 from 足够大的时候,就算
不发生 OOM,也会影响到 CPU 和带宽等,从而影响到整个集群的性能。
以上就是我对 ES 的认识和使用心得。
相信每位看完视频的小伙伴对会对 ElasticSearch 有了初步的理解了。关于 ES 的内容
体系非常庞大,你还想听哪些 ES 的相关内容,请在下方的评论区留言!
本期的普通人 VS 高手系列就到这里就结束了,喜欢的朋友一键三连,加个关注
(本文摘录自mic老师面试题)

你可能感兴趣的:(elasticsearch,大数据,搜索引擎)