Elasticsearch

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 1 基本概念1.1 索引索引是Elasticsearch存放数据的地方,可以看作是关系数据库中的一张表,相比于关系数据库,Elasticsearch可以快速、高效地对索引中的数据进行全文检索,并且不需要存储元原始数据。

1 基本概念

1.1 索引

  • 索引是Elasticsearch存放数据的地方,可以看作是关系数据库中的一张表,相比于关系数据库,Elasticsearch可以快速、高效地对索引中的数据进行全文检索,并且不需要存储元原始数据。
  • 索引是Elasticsearch中存储数据的一种逻辑结构。可以把它想象成数据库中包含行和列的表。行是索引中的一个文档,列示索引中的单个字段。Elasticsearch集群可以同时运行多个索引。除此之外,因为单个索引是由分片组成的,所以它可以分散到多个节点中。不仅如此,每个分片可以有一个完全相同的副本,用于调控搜索性能以及发生故障时的备份恢复。
  • 所有组成索引的分片实际上是被分解成多个类型的apache lucene索引。

1.2 文档

  • 文档是Elasticsearch中存储的主要实体。类比于关系数据库,Elasticsearch的每个文档相当于数据表中的一行数据。
  • 文档由字段(行数据的列)组成,Elasticsearch允许一个字段出现多次,该类字段被称为多值字段。每个字段对应一种类型。字段类型可以是负复合的,字段可以包含其它子文档和数组。

1.3 文档类型

  • 在Elasticsearch中,一个索引可以存储许多不同类型的对象。例如,基于Elasticsearch的博客可存储文章和评论。文档类型可以帮助我们轻松区分这些对象。

1.4 节点和集群

  • Elasticsearch可以作为一个独立的搜索服务区工作。然而,为了能够处理大型数据集并实现容错功能,Elasticsearch支持在多台协同工作的服务器上运行。这些服务器被统称为一个集群,集群的每个服务器则被称为一个节点(node)。可以通过索引分片(分割成更小的个体)将海量数据进行分割并分布到不同节点。通过副本(索引部分的拷贝)可以实现更强的可用性和更高的性能。

1.5 分片

  • 当需要存储大规模文档时,由于RAM空间、硬盘容量等的限制,仅使用一个节点时不够的。另一个问题是一个节点的计算能力达不到所期望的复杂功能的要求。在这种情况下,可以将数据切分,每部分是一个单独的apache lucene索引,称为分片。每个分片可以被存储在集群的不同节点上。当需要查询一个由多个分片构成的索引时,Elasticsearch将该查询发送到每个相关的分片,并将结果合并。这些过程对具体应用而言是透明的,无须知道分片的存在。

1.6 副本

  • 为了提高查询的吞吐量或实现高可用性,可以启用分片副本功能。副本分片是对原始分片的一个精确拷贝,原始分片被称为主分片。对索引的所有修改操作都直接作用在主分片上,每个主分片可以有零个或多个副本分片。当主分片丢失时,集群可以将一个副本分片提升为新的主分片。

 

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
5月前
|
自然语言处理 数据挖掘 定位技术
深入探索Elasticsearch中的QueryBuilders
深入探索Elasticsearch中的QueryBuilders
288 0
|
6月前
|
搜索推荐 关系型数据库 MySQL
【Elasticsearch】初识elasticsearch
【Elasticsearch】初识elasticsearch
70 1
|
缓存 API 索引
Elasticsearch(五)
Elasticsearch(五)
62 0
Elasticsearch(五)
|
存储 关系型数据库 MySQL
Elasticsearch(二)
Elasticsearch(二)
62 0
|
存储 JSON 自然语言处理
【Elasticsearch】初识elasticsearch(下)
【Elasticsearch】初识elasticsearch(下)
74 0
|
存储 监控 搜索推荐
【Elasticsearch】初识elasticsearch(上)
【Elasticsearch】初识elasticsearch
73 0
|
自然语言处理 索引
如果还不会Elasticsearch这七个问题 那么你的Elasticsearch白学
如果还不会Elasticsearch这七个问题 那么你的Elasticsearch白学
76 0