强大的分布式搜索引擎-Elasticsearch基本介绍

Elasticsearch是什么?

Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎,是一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建

Elasticsearch特性

分布式(Distribute)

可扩展(Scalability)

实时或近实时(Real-time)

为什么使用Elasticsearch?

1.易于扩展和分布式

2.所有交互基于JSON调用(RESTful API)

3.基于强大的Lucene(全文检索引擎)构建

4.可扩展查询语义的DSL(Domain-specific Language)设定

5.支持高级查询和聚合的特性

6.可配置化和可扩展化

7.自定义文档化存储

8.活跃的社区

哪些公司再用它?

Wikipedia 使用 Elasticsearch 提供带有高亮片段的全文搜索,还有?search-as-you-type?和?did-you-mean?的建议。(搜索和推荐)

卫报?使用 Elasticsearch 将网络社交数据结合到访客日志中,实时的给它的编辑们提供公众对于新文章的反馈。(数据聚合分析和推荐)

Stack Overflow 将地理位置查询融入全文检索中去,并且使用?more-like-this?接口去查找相关的问题与答案。(搜索和数据聚合分析)

GitHub 使用 Elasticsearch 对1300亿行代码进行查询。(搜索)

使用场景

1.搜索引擎

2.数据分析和聚合

3.推荐

4.数据缓存

5.数据可视化

6.数据建模

7.其他场景

基本概念

1.Cluster:代表一个集群,集群中有多个节点,其中有一个master节点,master通过选举自动产生;

2. Node:代表节点,集群中的一个 Elasticearch 实例。

3.Index:代表索引,相当于关系数据库中的database,一个集群可以包含多个索引

4.Primary shard :代表主分片,索引可以切分成多个分片,分布到不同的集群节点上,分片对应的是 Lucene 中的索引

5.Replica shard:代表副本分片, 每个主分片可以有一个或者多个副本,副本可以保证系统的高可用性,当某个节点的某个分片损坏时可以从副本中恢复,此外,多个分片副本还可以起到负载均衡的作用;

6.Type:代表类型,相当于数据库中的table概念,mapping是针对 Type 的。同一个索引里可以包含多个 Type。

7.recovery:代表数据恢复,ES在有节点加入或退出时会根据机器的负载对索引分片进行重新分配;

8.Mapping:相当于数据库中的schema,用来约束字段的类型,不过 Elasticsearch 的 mapping 可以自动根据数据创建

9. Document :代表文档,ES中的数据以文档形式来存储,相当于数据库中的row。

10. Field:代表字段,相当于数据库中的column。

11.river:代表ES的一个数据源,它是以插件方式存在的一个ES服务,通过读取river中的数据并把它索引到ES中,官方的river有couchDB、RabbitMQ、Kafka、 Wikipedia等;

12.gateway : 代表ES索引快照的存储方式,ES默认是把索引存放到内存中,当内存满了再持久化到磁盘。geteway对索引快照进行存储,当这个集群关闭再重新启动时就会从geteway中读取索引备份数据。ES支持多种类型的gateway,如本地文件系统(默认),分布式文件系统(HDFS);

13.discovery.zen:    ES自动发现节点的机制,ES是一个基于P2P协议的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互;

14.transport:  代表ES内部节点之间或集群与客户端的交互方式,默认使用TCP协议,同时支持HTTP协议(json格式)、thrift、servlet、zeroMQ、memcached等传输协议(通过插件方式集成);

15. Allocation :代表分配,将分片分配给某个节点的过程,包括分配主分片或者副本。如果是副本,还包含从主分片复制数据的过程。

Elasticsearch架构图

相关参考:

http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html

https://es.xiaoleilu.com/010_Intro/45_Distributed.html

https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

结语:

关于ES的探索还在继续,很多大厂诸如BAT,硅谷一线科技公司ES都得到广泛的使用,在数据爆炸的这个时代,ES是技术生产力的代表,是一颗璀璨的新星。公司项目业务也有相关的技术选型和扩展。在数据处理,分析和可视化将不断发挥作用。

网友评论

0条评论

发表

网友评论

0条评论

发表

最新评论

推荐文章

彩龙

Copyright © 2008-2020 彩龙社区(https://www.clzg.cn) 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP