这篇文章给大家介绍ElasticSearch简介及使用指引是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
ES 简介
Elasticsearch 是一个分布式、Restful 风格的搜索数据分析引擎,能够解决常规和各种类型数据的存储及检索需求。作为ELK和ElasticStack的核心,它能够集中存储数据,通过Elasticsearch 能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、经纬度坐标等数据结构)。
ES 的特点和优势
实时分析的分布式搜索引擎,分布式,索引拆分成多个分片,集群中的数据节点可以承载一个或多个分片,并且协调和处理各种操作,负载再平衡和路由大多数情况下自动完成。
支持插件机制,分词插件、同步插件、Hadoop插件、可视化插件。
ES 一些基本概念
Cluster:集群。ES 可以作为一个独立的单个搜索服务器。不过,为了处理大型数据集,实现容错和高可用,ES可以运行在许多相互合作的服务器上,这些服务器上的 ES 实例集合成为集群。
Node:节点。形成集群的每个服务器上的实例分为节点。
Shard:分片。当有大量的文档时,由于内存的限制、磁盘处理能力不足、无法足够快的响应客户端的请求等,一个节点可能不够用,这种情况下,数据可以分为较小的分片,每个分片放到不同的服务器上,当查询的索引分布在多个分片上时,ES 会把查询发送给相关的分片,并将结果组合在一起,而应用程序不知道分片的存在,即:这个过程对用户来说是透明的。
Replica:副本。为提高查询吞吐量或实现高可用,可以使用分片副本,副本是一个分片的精确复制,每个分片可以有 0 个或者多个副本。
ES 与传统数据库对应关系
ES 和传统关系型数据库结构的一些对应关系
关系型数据 | Elasticsearch | 备注 |
---|---|---|
数据库 Database | Index | |
表 Table | Type | 6.x 以上已不支持多 type |
记录 Record | document | |
表结构 Scheme | mapping | |
列 Column | Field |
一级分类 | 二级分类 | 具体类型 |
---|---|---|
核心类型 | 字符串类型 | string, text, keyword |
整型类型 | integer, long, short, byte | |
浮点类型 | double, float, half_float, scaled_float | |
逻辑类型 | boolean | |
日期类型 | date | |
范围类型 | range(integer_range, float_range, long_range, double_range, date_range) | |
二进制类型 | binary | |
复合类型 | 对象类型 | object |
嵌套类型 | nested | |
地理类型 | 地理坐标类型 | Geo-point |
地理地图 | Geo-shape | |
特殊类型 | IP 类型 | ip |
自动补全类型 | completion | |
统计类型 | token_count | |
附件类型 | attachement | |
过滤器类型 | percolator |
ES 的倒排索引
传统关系型数据库(以 MySQL 为例),其索引结构是查找树(“B+”树)结构,其叶子节点存储索引数据域,其他节点进行查找索引。其索引过程是直接通过二叉查找树找到对应记录。可以理解为通过一列(主键索引)或几列(组合索引)来查找对应记录。
图 1.MySQL "B+" Tree Index
而 ES 的索引确十分不同,它是将文档(document)先经过一定的分词器分词之后,存储分词结果作为数据索引。倒排索引存储的是文档分词结果与文档之间的映射关系。
关于ElasticSearch简介及使用指引是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。