说明
- ElasticSearch概念、原理、使用场景、Solr对比、数据结构
- 官方文档:https://www.elastic.co/cn/
核心概念
- 作者:Doug Cutting
- ELK
- ElasticSearch
- Lucene
- Kibana
- ES基于Lucene做了一些封装和增强
- ES是分布式全文索引
- PB级别(大数据)
- Solr
- 与ES功能相似
- 对于已有固定数据搜索有优势,不适合实时更新数据场景
- Solr依赖Zookeeper进行分布式管理,而ES自带
- Solr支持json、xml、csv等,ES只支持json
- Solr功能多,而ES只有核心功能但可以装插件比如ik分词器
- ES数据结构
- ElasticSearch是一个面向文档型数据库,一条数据就是一个文档
- ElasticSearch与MySQL对比(其中Type在8版本已经弃用默认_doc)
- ElasticSearch=>MySQL
- Index(索引)=>Database(数据库)
- Type(类型)=>Table(表)
- Document(文档)=>Row(行)
- Fields(字段)=>Colums(列)
- 核心原理:倒排索引
- 原理:好比将MySQL某个表中的所有列的值拆分成一个一个关键词,一条一条和主键ID关联到一个ES的索引表中。查询的时候根据关键词直接拿到对应的主键ID
- ES缺点
- 随着时间的推移,将会占用非常庞大的磁盘空间
- 运行时也耗费相当大的内存(内存越大性能约好)