介绍

Elasticsearch 是目前最先进的开源分布式存储、搜索、分析引擎。能实时搜索和分析各种类型的数据,包括地理空间数据。Elasticsearch 基于 Apache Lucene 开发,使用 Java 编写,能跨平台运行。通过 RESTful API 提供服务,以 JSON 格式存储数据。

Elasticsearch 的优势:

  1. 可扩展。Elasticsearch 能够运行在上千个节点,存储 PB 级别数据,并且提供实时的搜索和分析服务。
  2. 全文搜索。基于各项元素对搜索结果进行排序,以优化向用户显示结果的方式。
  3. 实时。新数据在1秒内完成索引,然后就能搜索到。
  4. 简单,一致的 REST API。可以直接从命令行,或者任何能发送 http 请求的客户端操作 Elasticsearch。
  5. 众多插件。例如分词插件、Hadoop 插件等,能满足各种特殊要求。

根据 DB-Engines 的排名,Elasticsearch 长期占领搜索引擎榜首。

Elasticsearch 排名
2020年6月 Elasticsearch 排名

Elasticsearch 越来越热门,即便不做搜索,只用来做存储也是很好的选择,能够替代 MongoDB 等文档型数据库。

Elasticsearch的核心概念:

  1. Node:节点,一个运行 Elasticsearch 的服务器称为节点。
  2. Cluster:集群,多个节点组成集群,相互协作。
  3. Shards:分片,当节点索引的数据量太大时,进行水平拆分,每个数据部分称为一个分片。
  4. Replicas:备份/副本,每个 Shards(分片) 有一个主分片和零到多个副本分片。
  5. Index:索引,概念上相当于关系型数据库的数据库。
  6. Mapping:映射,定义索引中字段的存储类型、分词方式、是否存储等信息,一般会自动识别,相当于关系型数据库的表。
  7. Document:文档,索引中的每一条 JSON 格式的数据。

这个概念可能难以理解,后面会使用到的时候会详细介绍。接下来体验一下 Elasticsearch 服务,尝试运行单机版本的 Elasticsearch,插入一些数据,并且使用搜索功能。