一、为什么要使用ElasticSearch?
因为在我们的业务场景中,可能会有大数据量的查询场景,这时候如果我们用常规的缓存和数据库来提供支持,在极端情况下可能会出现实例负载过高,导致系统不可用。
所以我们需要选择一款支持大数据量查询的框架或插件支持,ElasticSearch刚好就是这么一个角色。
ElasticSearch是一个开源的分布式搜索和分析引擎,具有高性能、分布式架构、简单易用以及强大的全文搜索和实时数据分析能力,适用于各种大数据场景下的数据存储、查询和分析需求。
二、ElasticSearch有哪些特点?
ElasticSearch有以下几个特点:
- 高性能:具有高性能的搜索和分析能力
- 可靠性:具有可靠性和高可用性,支持数据备份和恢复
- 可扩展性:支持动态扩容节点的
- 实时分析:支持实时分析,可以对数据进行实时查询,有利于快速检索数据
- …
三、ElasticSearch可以用在哪些场景?
- 搜索引擎:用于快速检索数据,如商品列表、推荐列表等
- 日志分析:通过日志分析,来帮助企业了解其业务的执行情况
- 数据分析:通过数据分析,来帮助企业获取有价值的信息,从而推动产品发展
- 实时监控:通过实时监控,来帮忙业务实时监控数据波动和系统性能,保证系统的正常运行
- …
四、ElasticSearch为什么这么快?
- 倒排索引:使用了倒排索引,将文档中的每个词和对应所在哪些文档中进行映射,从而实现快速检索速度
- 全文索引:使用了高效的全文索引,将文档转化成可搜索的结构化数据,从而实现快速检索速度
- 索引分片:将每个索引进行分片,使查询的时候可以并行查询,加快数据查询
- 索引优化:支持索引覆盖、索引下推等优化技术,加快数据查询
- 分布式存储:数据存储在多个节点上,从而减少单个节点的压力,提高整体性能
- 预处理:插入数据时会预处理存储到索引中,使得查询时不需要重新进行复杂计算,加快速度查询
- 内存存储:使用了内存存储,减少磁盘IO次数,提高系统查询性能
- …