共计 1433 个字符,预计需要花费 4 分钟才能阅读完成。
这期内容当中丸趣 TV 小编将会给大家带来有关 Elasticsearch 的基本概念是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
ES 是一个高扩展的、开源的、全文检索的搜索引擎,它提供了近实时的索引、搜索、分析功能。Shay Banon 是 ES 奠基者,系统是在 Apache Lucene 的基础上采用 Java 实现的。Lucene 非常复杂,而 ES 通过 RESTful API 屏蔽 Lucene 的复杂性,提供了方便的应用接口。
应用场景
它提供了强大的搜索功能,可以实现类似百度、谷歌等搜索。
可以搜索日志或者交易数据,用来分析商业趋势、搜集日志、分析系统瓶颈或者运行发展等等
可以提供预警功能(持续的查询分析某个数据,如果超过一定的值,就进行警告)
分析商业信息,在百万级的大数据中轻松的定位关键信息
ES 典型应用
Wikipedia
Stack Overflow
GitHub
Docker
基本概念
Cluster/ 集群:Cluster 是一组服务器构成的集成,用于协同存储数据、索引数据、检索数据和解析数据。Cluster 具有唯一标识名,你只需要指定集群标识名(默认是 elasticsearch),启动的时候,凡是集群是这个名字的,都会默认加入到一个集群中,选举 master 节点和节点管理都是自动完成的 (集群部署参考文章《ElasticSearch 部署》)。
Node/ 节点:Node 是参与到 Cluster 的单个服务器节点,具有唯一标识名,可加入到指定的 Cluster 中。
Index/ 索引:Index 是一类文档的集合,是具有相同业务特征的数据文档集合 (不是相同数据结构),相当于传统数据库中的数据库。ES 数据的索引、搜索和分析都是基于索引完成的。Cluster 中可以创建任意个 Index。
Type/ 类型:Type 是 Index 中数据的,用于标识不同的文档字段信息的集合,相当于传统数据库的表。在 2.0 之后的版本直接做了插入检查,禁止一个索引下不同 Type 的字段类型冲突。
Document/ 文档:Document 是 ES 数据可被索引化的基本的存储单元,需要存储在 Type 中,相当于传统数据库的行记录,使用 json 来表示。
Shard/ 分片:Shard 是 ES 基本存储容器,是 Lucene 的一个实例,因此具有完整的存储搜索分析功能。Shard 是 ES 扩展性和可靠性的基础。ES 默认在创建索引时会创建 5 个分片,这个数量可以修改。分片的数量只能在创建索引的时候指定,不能在后期修改。
如果一个索引数据量很大,会造成硬件硬盘和搜索速度的瓶颈。如果分成多个分片,分片可以分摊压力。
分片允许用户进行水平的扩展和拆分
分片允许分布式的操作,可以提高搜索以及其他操作的效率
Replica/ 备份:拷贝一份分片就完成了分片的备份。备份的数量可以动态定义。
当一个分片失败或者下线时,备份的分片可以代替工作,提高了高可用性。
备份的分片也可以执行搜索操作,分摊了搜索的压力。
NRT(Near Real Time):ES 并不是一个标准的数据库,它不像 MongoDB,它侧重于对存储的数据进行搜索。因此要注意到它不是实时读写 的,这也就意味着,刚刚存储的数据,并不能马上查询到。缺省配置下,shard 每秒自动更新,所以会有 1S 的延时。
上述就是丸趣 TV 小编为大家分享的 Elasticsearch 的基本概念是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。