Elasticsearch -- 简介
简介
Elasticsearch是一个基于Lucene的搜索服务器。
它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。
根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
Elasticsearch的关键概念如下:
- 节点:它指的是Elasticsearch的单个运行实例。单个物理和虚拟服务器可容纳多个节点,这取决于它们的物理资源(如RAM、存储和处理能力)的能力。
- 群集:它是一个或多个节点的集合。群集为所有数据提供了跨所有节点的集体索引和搜索功能。
- 索引:它是不同类型的文档及其属性的集合。索引还使用分片的概念来提高性能。例如,一组文档包含社交网络应用程序的数据。
- 文档:它是以JSON格式定义的特定方式的字段集合。每个文档都属于一种类型,并且位于索引内。每个文档都与一个称为UID的唯一标识符相关联。
- 碎片:索引在水平方向上细分为碎片。这意味着每个分片都包含文档的所有属性,但所包含的JSON对象的数量要少于索引。水平分隔使分片成为一个独立的节点,可以将其存储在任何节点中。主分片是索引的原始水平部分,然后将这些主分片复制到副本 分片中。
- 副本:Elasticsearch允许用户创建索引和碎片的副本。复制不仅有助于在发生故障时提高数据的可用性,而且还通过在这些副本中执行并行搜索操作来提高搜索性能。
Elasticsearch和RDBMS之间的比较
在Elasticsearch中,索引类似于RDBMS(关系数据库管理系统)中的表。每个表都是行的集合,就像每个索引都是Elasticsearch中的文档的集合一样。
下表对这些术语进行了直接比较
Elasticsearch | 关系数据库管理系统(RDBMS) |
---|---|
群集 | Database |
碎片 | 碎片 |
索引 | 表 |
字段 | 列 |
文档 | 行 |
特性
Elasticsearch的常见特性如下-
-
Elasticsearch最多可扩展至PB级的结构化和非结构化数据。
-
Elasticsearch可以代替MongoDB和RavenDB等文档存储。
-
Elasticsearch使用非规范化来提高搜索性能。
-
Elasticsearch是流行的企业搜索引擎之一,目前已被Wikipedia,The Guardian,StackOverflow,GitHub等许多大型组织使用。
-
Elasticsearch是一个开放源代码,可在Apache许可版本2.0下使用。
优势
-
Elasticsearch是在Java上开发的,这使得它在几乎所有平台上都兼容。
-
Elasticsearch是实时的,换句话说,一秒钟后添加的文档就可以在这个引擎中搜索了
-
Elasticsearch是分布式的,因此可以轻松地在任何大型组织中进行扩展和集成。
-
使用 gateway 的概念创建完整的备份非常简单,这个概念在 Elasticsearch 很常见。
-
与Apache Solr相比,在Elasticsearch中处理多租户非常容易。
-
Elasticsearch使用JSON对象作为响应,这使得可以使用大量不同的编程语言来调用Elasticsearch服务器。
-
除了不支持文本渲染的文档类型外,Elasticsearch支持几乎所有文档类型。
-
在处理请求和响应数据方面,Elasticsearch不提供多语言支持(仅在JSON中可用),与Apache Solr不同,后者可以CSV,XML和JSON格式。
-
有时,Elasticsearch会出现脑裂情况的问题
官方学习文档:
https://www.cainiaojc.com/elasticsearch/elasticsearch-basic-concepts.html
个人博客推荐:
https://anbc.gitbooks.io/elk-handbook/content/ji_ben_gai_nian.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)