Java大数据:全文搜索引擎Elasticsearch入门

在之前的《Java大数据:大数据开发必须掌握的四种数据库》一文中,我们提到了MongoDB、Redis、ElasticSearch、Hbase,系列文也对MongoDB、Redis、Hbase都做了简单的入门介绍。今天是系列文的最后一篇,我们来讲全文搜索引擎Elasticsearch。

Java大数据:全文搜索引擎Elasticsearch入门_第1张图片

搜索是我们日常生活当中非常熟悉的一项功能,各大搜索引擎以及各种资讯APP,都会提供搜索功能。而Elasticsearch 在分布式搜索与数据分析领域,可以说是功能强大。

Elasticsearch简介

ElasticSearch是一款基于 Apache Lucene的开源搜索引擎产品,特点是开源、分布式、准实时等。

ElasticSearch可以单机部署,也可以集群部署。ES的分布式属性,可以轻松的处理超过单机负载能力的数据量,集群也是无间断服务的一种解决方案。因此在Java大数据开发当中得到重用。

Java大数据:全文搜索引擎Elasticsearch入门_第2张图片

Elasticsearch被广泛运用于大数据近实时分析,包括日志分析、指标监控、信息安全等多个领域。国内包括腾讯、滴滴、今日头条、饿了么、360等公司,都在使用Elasticsearch。

ElasticSearch应用场景

(1)海量数据分析引擎。当你需要对应用日志、系统日志等进行分析时,可以使用ElasticSearch的聚合搜索功能来实现;

(2)站内搜索引擎。当你需要快速搭建一个站内搜索的时候,使用ElasticSearch就能完成这个任务;

(3)数据仓库。使用ElasticSearch强大的分布式搜索能力,直接将其作为数据仓库产品来使用,可以存储PB级别的结构化或者非结构化数据,这样可以为上层应用提供强大的数据存储能力。

Java大数据:全文搜索引擎Elasticsearch入门_第3张图片

ElasticSearch基础概念

Near Realtime(近实时):Elasticsearch是一个近乎实时的搜索平台,这意味着从索引文档到可搜索文档之间只有轻微的延迟(通常是一秒钟)。

Cluster(集群):集群是一个或多个节点的集合,它们一起保存整个数据,并提供跨所有节点的联合索引和搜索功能。每个集群都有自己的唯一集群名称,节点通过名称加入集群。

Node(节点):节点是指属于集群的单个Elasticsearch实例,存储数据并参与集群的索引和搜索功能。可以将节点配置为按集群名称加入特定集群,默认情况下,每个节点都设置为加入一个名为elasticsearch的集群。

Java大数据:全文搜索引擎Elasticsearch入门_第4张图片

Index(索引):索引是一些具有相似特征的文档集合,类似于MySql中数据库的概念。

Type(类型):类型是索引的逻辑类别分区,通常,为具有一组公共字段的文档类型,类似MySql中表的概念。注意:在Elasticsearch 6.0.0及更高的版本中,一个索引只能包含一个类型。

Document(文档):文档是可被索引的基本信息单位,以JSON形式表示,类似于MySql中行记录的概念。

Shards(分片):当索引存储大量数据时,可能会超出单个节点的硬件限制,为了解决这个问题,Elasticsearch提供了将索引细分为分片的概念。分片机制赋予了索引水平扩容的能力、并允许跨分片分发和并行化操作,从而提高性能和吞吐量。

Replicas(副本):在可能出现故障的网络环境中,需要有一个故障切换机制,Elasticsearch提供了将索引的分片复制为一个或多个副本的功能,副本在某些节点失效的情况下提供高可用性。

关于Java大数据,全文搜索引擎Elasticsearch入门,以上就为大家做了简单的介绍了。在大数据开发当中,往往需要基于不同的场景需求来规划解决方案,而Elasticsearch在特定场景下,具备相当的优势。

你可能感兴趣的:(大数据,大数据,分布式,elasticsearch,搜索引擎,数据库)