Elasticsearch 指南 [7.0]

Getting started

Elasticsearch 是一个高度伸缩的开源全文搜索与分析引擎。它可以使你快速的近乎于准实时的存储、查询和分析超大数据集。它通常被用来当做构建复杂查询特性和需求强大应用的基础引擎/技术。
Elasticsearch 可以被用在如下几个场景:
1. 当你运营一个提供客户检索商品的在线电子商城的时候,可以使用ES来存储整个商品目录和库存,并且为客户提供检索和自动推荐功能。
2. 收集交易数据,存储并做趋势、统计、概要或异常分析。这种情况下,可以使用Logstash来收集、聚合和解析数据,并且存储到 Elasticsearch。一单数据进入 Elasticsearch,你可以检索,聚合来掌握你感兴趣的信息。 
3. 价格预警平台,为价格敏感客户提供匹配其需求(主要是价格方面)的商品。 
4. 在报表分析/BI领域,可以使用ES的聚合功能完成针对大数据量的复杂分析。

Basic Concepts

如有是Elasticsearch的几个核心概念。开篇理解这几个概念对后面的学习过程非常有帮助。

### Near Realtime (NRT)
Elasticsearch 是一个准实时搜索平台。这句话的意思是,从创建索引到可以被查询之间的延时很短(正常情况下一秒的延时)。

### Cluster
一个Elasticsearch集群是一到多个ES 节点的集合,保存了所有数据和提供了跨集群内所有节点的联合索引和搜索能力。一个集群被命名为唯一的名字(默认为 elasticsearch)。集群名称非常重要,因为当一个节点通过集群的名字加入集群时,一个节点只能是一个集群的一部分。
确保在不同的环境使用不同的集群名称,否则会导致节点添加到错误的集群。比如你可以用logging-dev\logging-state\logging-prod来区分不同环境集群。
注意,只有一个节点的集群是有效且非常好的。此外,您还可以拥有多个独立的集群,每个集群都有自己独特的集群名称。
### Node
 一个节点是作为集群一部分的单个服务器,存储数据并参与集群的索引和搜索。与集群一样,节点由一个名称标识,默认情况下,该名称是在启动时分配给节点的随机通用唯一标识符(UUID)。如果不希望使用默认值,则可以定义所需的任何节点名称。节点名称对于管理目的很重要,因为您希望确定网络中的哪些服务器对应于 Elasticsearch 集群中的哪些节点。
一个节点可以被设置添加到指定名称的集群。默认情况下,每个节点会被设置加入到名称为elasticsearch 的集群,意味着,如果在你的网络中启动一些节点(假设这些节点可以发现彼此),他们会自动形成并加入名称为elasticsearch的集群。
在一个急群众,你可以拥有你想要的节点数。此外,如果在你的网络中没有任何Elasticsearch 节点,启动一个node会组成一个名称为sleasticsearch的单节点集群。
### Index
一个索引是一个拥有一些相似特征的文档的集合。比如,你可以拥有一个客户数据的索引,一个商品目录索引,甚至一个订单数据索引。一个索引同城被一个名字(所有字母必须小写)标示并且当针对这个索引的文档执行索引、搜索、更新和删除操作的时候这个名字被用来指向索引。
### Type
一个type通常是一个索引的一个逻辑分类/分区,允许在 一个索引下存储不同类型的文档。比如用户类型,博客类型。现在已经不能在一个索引下创建多个类型,并且类型概念已经在后续版本删除。见[详细](https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html)
### Document
一个文档是可以被索引的基本信息单元。比如,你可以为一个客户创建一个文档,为一个商品创建一个文档。文档可以用json表示。在一个索引李,你可以存储足够你想想的文档数。
分片 & 复本
……未完待续
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章