Elasticsearch 学习之入门篇

Elasticsearch 学习之入门篇

Elasticsearch 概述

Elasticsearch 是一个基于Lucene的搜索服务器,采用Java语言编写,使用lucene构建索引,提供索引搜索功能,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。我们知道Lucene提供的功能已经很强大了,但是Lucene只是一个由Java语言编写的库,对不使用Java语言的开发人员并不友好,Elasticsearch在Lucene的基础上做了更多地改进,提供了多种语言接口。Lucene专注于底层搜索的建设,Elasticsearch专注于企业应用。

Elasticsearch的目标是让全文搜索变得更简单,开发者可以通过简单明了的RESTful API轻松地实现搜索功能,而不必去面对Lucene的复杂性。


Elasticsearch优点

  • 分布式:Elasticsearch横向拓展非常灵活,当数据规模比较小的时候可以使用小规模的集群。随着数据的增长,需要更大的容量和更高的性能,此时只需要增加更多地节点,Elasticsearch的自动发现机制会识别新增节点并重新平衡分配数据。
  • 全文检索:Apache Lucene是一个用Java编写的高性能的功能齐全的信息检索库,Elasticsearch在后台使用Lucene来提供强大的全文检索,提供任何开源产品的能力。自带多语言支持、强大的查询语言、地理位置支持、上下文感知的建议、自动完成和搜索片段。
  • 近实时搜索和分析:数据从进入Elasticsearch,可达到近实时搜索。除了搜索。Elasticsearch也可以进行聚合分析操作。
  • 高可用:高可用主要体现在容错机制上,Elasticsearch集群会自动发现新的或失败的节点,重组和重新平衡数据,确保数据是安全的和可访问的。
  • 模式自由:Elasticsearch的动态mapping机制可以自动检测数据的结构和类型,创建索引,并使数据可搜索。
  • RESTful API:Elasticsearch是API驱动。几乎任何操作都可以用一个简单的RESTful API使用JSON基于HTTP请求来实现,客户端也可使用多种编程语言。

应用场景

  1. 站内搜索:Elasticsearch在站内搜索中应用十分广泛,大部分网站尤其是网页信息量较大的网站,都会有站内全文检索这一功能,目的是为了方便用户快速检索信息。
  2. NoSQL数据库:Elasticsearch在读写性能上优于MongoDB,同时也支持地理位置查询。
  3. 日志分析:日志分析由实时日志分析平台ELK(Elasticsearch、Logstash、Kiabana)完成,能够对日志进行集中收集、存储、搜索、分析、监控以及可视化。

核心概念

集群

一个或多个安装Elasticsearch的服务器节点组织在一起就是集群,它们共同持有你整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,称为cluster name,集群名称默认是“elasticsearch”。集群名称非常重要,就像一个组织的名称,具有相同集群名称的节点才会组成一个集群。集群名称可以在配置文件中指定。

节点

一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个集群名称为“elasticsearch”的集群中,这意味着如果在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,他们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。但是有时候这种机制并不可靠,会发生脑裂现象,往往不如在没一个节点上配置节点的名字在启动时进行被动发现来的安全稳定。

索引

一个索引就是一个拥有几分相似特征的文档的集合,索引的数据结构仍然是倒排索引。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对这个索引中的文档进行索引、搜素、更新和删除的时候,都要使用到这个名字。在一个集群中,可以定义任意多的索引。索引做动词来讲的时候表示索引数据和对数据进行索引操作。

类型

在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类或分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。

文档

一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档。当然,也可以拥有某个订单的一个文档。文档都是JSON格式。

分片

一个索引可以存储超出单个节点硬件限制的大量数据。比如,一个具有10亿文档的索引占据1TB的磁盘空间,而任一节点都没有这样大的磁盘空间;或单个节点处理搜索请求,响应太慢,为了解决这个问题,Elasticsearch提供了将索引划分成多份的能力,这些份就叫作分片。当你创建一个索引的时候,可以指定想要的分片数量,每个分片也是一个功能完善并且独立的索引,这个索引可以被放置到集群中的任何节点上。

分片之所以重要,主要有以下两方面原因:

  1. 允许你水平分割/扩展你的内容容量。
  2. 允许你在分片(潜在的,位于多个节点)上进行分布式、并行的操作,进而提供性能和吞吐量,至于一个分片怎样分布,他的文档怎样聚合回搜索请求,完全由Elasticsearch管理,对于用户来说,这些都是透明的。

副本

在一个网络/云的环境中,失败随时都可能发生,在某个分片/节点不知怎么的就处于离线状态,或者由于某种原因消失了,这种情况下,有一个故障转移机制非常有用,并且也是强烈推荐的。为此,Elasticsearch允许你创建分片的一份或多份拷贝,这些拷贝叫做复制分片,或者直接叫做副本。副本之所以重要,有以下两个原因

  1. 在分片/节点失败的情况下,保证高可用性。因为这个原因,复制分片不与主分片置于同一节点上,这一点非常重要。
  2. 扩展你的搜索量/吞吐量,因为搜索可以再所有的副本上并行运行。

总之,每个索引可以被分成多个分片。一个索引可以有一个至多个副本。一旦有了副本,每个索引就有了主分片(作为复制源的原来的分片)和副本分片(主分片的拷贝)之别。分片和副本的数量可以在索引创建时指定。在索引创建之后,可以在任何时候动态的改变副本的数量,但是事后不能改变分片的数量。


对比RDMS

Elasticsearch可以看成一个数据库,只是和关系型数据库比起来数据格式和功能不一样而已。

RDMSElasticsearch
数据库(database)索引(index)
表(table)类型(type)
行(column)文档(document)
列(schema)字段(field)
表结构映射(Mapping)
索引全文索引
SQL查询DSL
SELECT * FROM TABLEGET HTTP://
UPDATE TABLE SETPUT HTTP://
DELETEDELETE HTTP://

请注意,进入Elasticsearch的世界以后,我们讲到的某个索引下的某个类型的某个文档,和关系型数据库讲某个数据库中某张表的某条记录是等价的。

参考书籍:《从Luecene到Elasticsearch》

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值