《深入理解Elasticsearch(原书第2版)》一1.2.1 Elasticsearch的基本概念

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介:

本节书摘来华章计算机《深入理解Elasticsearch(原书第2版)》一书中的第1章 ,第1.2.1节,[美]拉斐尔·酷奇(Rafal Ku) 马雷克·罗戈任斯基(Marek Rogoziski)著 张世武 余洪淼 商旦 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2.1 Elasticsearch的基本概念

现在,让我们浏览一下Elasticsearch的基本概念以及它们的特征。
1. 索引
Elasticsearch将它的数据存储在一个或者多个索引(index)中。用SQL领域的术语来类比,索引就像数据库,可以向索引写入文档或者从索引中读取文档。就像之前说过的那样,Elasticsearch在内部使用Lucene将数据写入索引或从索引中检索数据。读者需要注意的是,Elasticsearch中的索引可能由一个或多个Lucene索引构成,细节由Elasticsearch的索引分片(shard)、复制(replica)机制及其配置决定。
2. 文档
文档(document)是Elasticsearch世界中的主要实体(对Lucene来说也是如此)。对于所有使用Elasticsearch的案例来说,它们最终都会被归结到对文档的搜索之上。文档由字段构成,每个字段包含字段名以及一个或多个字段值(在这种情况下,该字段被称为是多值的,即文档中有多个同名字段)。文档之间可能有各自不同的字段集合,文档并没有固定的模式或强制的结构。这种现象看起来很眼熟(这些规则也适用于Lucene文档)。事实上,Elasticsearch的文档最后都被存储为Lucene文档了。从客户端的角度来看,文档是一个JSON对象(想了解更多关于JSON格式的细节,请参考http://en.wikipedia.org/wiki/JSON)。
**3. 类型
**Elasticsearch中每个文档都有与之对应的类型(type)定义。这允许用户在一个索引中存储多种文档类型,并为不同文档类型提供不同的映射。如果同SQL领域类比,Elasticsearch的类型就像一个数据库表。
4. 映射
正如你在1.1节所了解到的那样,所有文档在写入索引前都将被分析。用户可以设置一些参数,决定如何将输入文本分割为词条,哪些词条应该被过滤掉,或哪些附加处理有必要被调用(例如移除HTML标签)。这就是映射(mapping)扮演的角色:存储分析链所需的所有信息。虽然Elasticsearch能根据字段值自动检测字段的类型,有时候(事实上几乎是所有时候)用户还是想自己来配置映射,以避免出现一些令人不愉快的意外。
5. 节点
单个的Elasticsearch的服务实例被称为节点(node)。很多时候部署一个Elasticsearch节点就足以应付大多数简单的应用,但是考虑到容错性或者数据膨胀到单机无法应付这些状况,也许你会更倾向于使用多节点的Elasticsearch集群。
Elasticsearch节点可以按用途分为3类。众所周知,Elasticsearch是用来索引和查询数据的,因此第1类节点就是数据(data)节点,用来持有数据,提供对这些数据的搜索功能。第2类节点指主(master)节点,作为监督者负责控制其他节点的工作。一个集群中只有一个主节点。第3类节点是部落(tribe)节点。部落节点是Elasticsearch 1.0版新引入的节点类型,它可以像桥梁一样连接起多个集群,并允许我们在多个集群上执行几乎所有可以在单集群Elasticsearch上执行的功能。
6. 集群
多个协同工作的Elasticsearch节点的集合被称为集群(cluster)。Elasticsearch的分布式属性使我们可以轻松处理超过单机负载能力的数据量。同时,集群也是无间断提供服务的一种解决方案,即便当某些节点因为宕机或者执行管理任务(例如升级)不可用时,Elasticsearch几乎是无缝集成了集群功能。在我们看来,这是它胜过竞争对手的最主要优点之一。在Elasticsearch中配置一个集群是再容易不过的事了。
7. 分片
正如我们之前提到的那样,集群允许系统存储的数据总量超过单机容量。为了满足这个需求,Elasticsearch将数据散布到多个物理的Lucene索引上去。这些Lucene索引被称为分片(shard),而散布这些分片的过程叫做分片处理(sharding)。Elasticsearch会自动完成分片处理,并且让用户看来这些分片更像是一个大索引。请记住,除了Elasticsearch本身自动进行分片处理外,用户为具体的应用进行参数调优也是至关重要的,因为分片的数量在索引创建时就被配置好了,之后无法改变,除非创建一个新索引并重新索引全部数据。
8. 副本
分片处理允许用户推送超过单机容量的数据至Elasticsearch集群。副本(replica)则解决了访问压力过大时单机无法处理所有请求的问题。思路是很简单的,为每个分片创建冗余的副本,处理查询时可以把这些副本当作最初的主分片(primary shard)使用。值得注意的是,副本给Elasticsearch带来了更多的安全性。如果主分片所在的节点宕机了,Elasticsearch会自动从该分片的副本中选出一个作为新的主分片,因此不会对索引和搜索服务产生干扰。可以在任意时间点添加或移除副本,所以一旦你有需要,可随时调整副本的数量。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
8月前
|
存储 机器学习/深度学习 负载均衡
【Elasticsearch】学好Elasticsearch系列-核心概念
【Elasticsearch】学好Elasticsearch系列-核心概念
73 0
|
6月前
|
存储 监控 搜索推荐
ElasticSearch第二讲:ES详解 - ElasticSearch基础概念
ElasticSearch第二讲:ES详解 - ElasticSearch基础概念
198 0
|
8月前
|
存储 SQL 自然语言处理
|
8月前
|
存储 JSON 搜索推荐
Elasticsearch基本概念讲解
Elasticsearch基本概念讲解
104 0
|
9月前
|
存储 SQL 自然语言处理
二.全文检索ElasticSearch经典入门-倒排索引&核心概念&集群概念&分片机制
二.全文检索ElasticSearch经典入门-倒排索引&核心概念&集群概念&分片机制
|
9月前
|
存储 自然语言处理 搜索推荐
ElasticSearch的基本介绍与用途、ElasticSearch中一些基本的概念、倒排索引的基本概念
ElasticSearch的基本介绍与用途、ElasticSearch中一些基本的概念、倒排索引的基本概念
85 1
|
10月前
|
存储 搜索推荐 大数据
大数据数据存储的搜索引擎Elasticsearch的基础概念的副本
随着大数据存储技术的不断升级和企业对数据可靠性的要求越来越高,搜索引擎Elasticsearch的副本机制也变得愈发重要。作为一名阿里云开发者社区的博主,本文将会从大数据存储的角度,深入探讨Elasticsearch的副本机制。
43 0
|
10月前
|
存储 搜索推荐 大数据
大数据数据存储的搜索引擎Elasticsearch的基础概念的类型
随着大数据时代的到来,如何高效地存储和检索数据成为了企业面临的重要挑战。针对这个问题,搜索引擎Elasticsearch应运而生。作为一名阿里云开发者社区的博主,本文将会从大数据存储的角度,深入探讨Elasticsearch中的数据类型。
68 0
|
10月前
|
存储 JSON 搜索推荐
大数据数据存储的搜索引擎Elasticsearch的基础概念的文档
在大数据存储领域,搜索引擎Elasticsearch已经成为了一种非常受欢迎的解决方案。作为一名阿里云开发者社区的博主,本文将会从大数据存储的角度,深入探讨Elasticsearch中的文档概念。
70 0
|
10月前
|
存储 自然语言处理 搜索推荐
大数据数据存储的搜索引擎Elasticsearch的基础概念的索引
在大数据存储领域,搜索引擎Elasticsearch已经成为了一种非常受欢迎的解决方案。作为一名阿里云开发者社区的博主,本文将会从大数据存储的角度,深入探讨Elasticsearch中的索引概念。
48 0

热门文章

最新文章