- Elasticsearch 教程
- Elasticsearch - 主页
- Elasticsearch - 基本概念
- Elasticsearch - 安装
- Elasticsearch - 填充
- 版本之间的迁移
- Elasticsearch - API 约定
- Elasticsearch - 文档 API
- Elasticsearch - 搜索 API
- Elasticsearch - 聚合
- Elasticsearch - 索引 API
- Elasticsearch - CAT API
- Elasticsearch - 集群 API
- Elasticsearch - 查询 DSL
- Elasticsearch - 映射
- Elasticsearch - 分析
- Elasticsearch - 模块
- Elasticsearch - 索引模块
- Elasticsearch - 摄取节点
- Elasticsearch - 管理索引生命周期
- Elasticsearch - SQL 访问
- Elasticsearch - 监控
- Elasticsearch - 汇总数据
- Elasticsearch - 冻结索引
- Elasticsearch - 测试
- Elasticsearch - Kibana 仪表板
- Elasticsearch - 按字段过滤
- Elasticsearch - 数据表
- Elasticsearch - 区域地图
- Elasticsearch - 饼图
- Elasticsearch - 面积图和条形图
- Elasticsearch - 时间序列
- Elasticsearch - 标签云
- Elasticsearch - 热图
- Elasticsearch - 画布
- Elasticsearch - 日志 UI
- Elasticsearch 有用资源
- Elasticsearch - 快速指南
- Elasticsearch - 有用的资源
- Elasticsearch - 讨论
Elasticsearch - 基本概念
Elasticsearch 是一个基于 Apache Lucene 的搜索服务器。它由 Shay Banon 开发并于 2010 年发布。现在由 Elasticsearch BV 维护。其最新版本是7.0.0。
Elasticsearch 是一个实时分布式开源全文搜索和分析引擎。它可以从 RESTful Web 服务界面访问,并使用无模式 JSON(JavaScript 对象表示法)文档来存储数据。它是基于Java编程语言构建的,因此Elasticsearch可以在不同的平台上运行。它使用户能够以非常高的速度探索大量数据。
一般特征
Elasticsearch 的一般特征如下:
Elasticsearch 的结构化和非结构化数据可扩展到 PB 级。
Elasticsearch 可以用作 MongoDB 和 RavenDB 等文档存储的替代品。
Elasticsearch 使用非规范化来提高搜索性能。
Elasticsearch 是流行的企业搜索引擎之一,目前被维基百科、卫报、StackOverflow、GitHub 等许多大型组织使用。
Elasticsearch 是开源的,可在 Apache 许可证版本 2.0 下使用。
关键概念
Elasticsearch 的关键概念如下:
节点
它指的是 Elasticsearch 的单个运行实例。单个物理和虚拟服务器可容纳多个节点,具体取决于 RAM、存储和处理能力等物理资源的功能。
簇
它是一个或多个节点的集合。集群为整个数据提供跨所有节点的集体索引和搜索功能。
指数
它是不同类型的文档及其属性的集合。Index还使用了分片的概念来提高性能。例如,一组文档包含社交网络应用程序的数据。
文档
它是以 JSON 格式定义的特定方式的字段集合。每个文档都属于一种类型并驻留在索引内。每个文档都与一个称为 UID 的唯一标识符相关联。
碎片
索引被水平细分为分片。这意味着每个分片包含文档的所有属性,但包含的 JSON 对象数量少于索引。水平分离使得分片成为一个独立的节点,可以存储在任意节点中。主分片是索引的原始水平部分,然后这些主分片被复制到副本分片中。
复制品
Elasticsearch 允许用户创建索引和分片的副本。复制不仅有助于提高发生故障时数据的可用性,而且还可以通过在这些副本中执行并行搜索操作来提高搜索性能。
优点
Elasticsearch 是在 Java 上开发的,这使得它兼容几乎所有平台。
Elasticsearch 是实时的,换句话说,一秒钟后,添加的文档就可以在该引擎中搜索到
Elasticsearch 是分布式的,这使得它可以轻松地在任何大型组织中扩展和集成。
使用 Elasticsearch 中存在的网关概念可以轻松创建完整备份。
与 Apache Solr 相比,在 Elasticsearch 中处理多租户非常容易。
Elasticsearch 使用 JSON 对象作为响应,这使得可以使用大量不同的编程语言调用 Elasticsearch 服务器。
Elasticsearch 支持几乎所有文档类型,除了那些不支持文本渲染的文档类型。
缺点
Elasticsearch 在处理请求和响应数据(仅支持 JSON)方面不支持多语言,这与 Apache Solr 不同,在 Apache Solr 中支持 CSV、XML 和 JSON 格式。
有时,Elasticsearch 会出现裂脑情况的问题。
Elasticsearch 与 RDBMS 的比较
在Elasticsearch中,索引类似于RDBMS(关系数据库管理系统)中的表。每个表都是行的集合,就像 Elasticsearch 中每个索引都是文档的集合一样。
下表给出了这些术语之间的直接比较 -
弹性搜索 | 关系型数据库管理系统 |
---|---|
簇 | 数据库 |
碎片 | 碎片 |
指数 | 桌子 |
场地 | 柱子 |
文档 | 排 |