002 elasticsearch中的一些概念
在本文中,主要是ES7中的核心概念。
ElasticSearch是一个实时分布式开源全文搜索和分析引擎。它可以从RESTful网络服务接口访问,并使用无模式JSON (JavaScript对象符号)文档来存储数据。它建立在Java编程语言之上,使ElasticSearch能够在不同的平台上运行。它使用户能够以非常高的速度浏览非常大量的数据。
1.ElasticSearch的特点
ElasticSearch最多可扩展到千兆字节的结构化和非结构化数据。
ElasticSearch可以用来替代像MongoDB和RavenDB这样的文档存储。
ElasticSearch使用反规范化来提高搜索性能。
ElasticSearch(ElasticSearch)是流行的企业搜索引擎之一,目前正被维基百科、卫报、StackOverflow、GitHub等许多大组织使用。
ElasticSearch是开源的,在Apache许可版本2.0下可用。
2.ElasticSearch关键概念
Node(节点):它指的是ElasticSearch的单个运行实例。单个物理和虚拟服务器可容纳多个节点,具体取决于其物理资源(如内存、存储和处理能力)的能力。
Cluster(集群):它是一个或多个节点组成的集合。集群为整个数据提供跨节点的索引和搜索功能。
Index(索引):包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称。一个index包含很多document,一个index就代表了一类类似的或者相同的Document。比如说建立一个商品索引,里面可能就存放了所有的商品数据。
Type/Mapping(类型/映射):它是共享同一索引中一组公共字段的文档集合。例如,索引包含社交网络应用程序的数据,然后可以有特定类型的用户简档数据、另一种类型的消息数据和另一种类型的评论数据。
Document(文档):它是以JSON格式定义的特定方式的字段集合。每个文档都属于一个类型,并驻留在一个索引中。每个文档都有一个唯一的标识符,称为UID。
Shard(分片):单台机器无法存储大量数据,ElasticSearch可以将一个索引中的数据切分为多个Shard,分布在多台服务器上存储。有了Shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。
Replicas(副本):服务器随时可能故障或宕机,此时Shard可能就会丢失,因此可以为每个Shard创建多个Replica副本。Replica可以在Shard故障时提供备用服务,保证数据不丢失,多个Replica还可以提升搜索操作的吞吐量和性能。
3.ElasticSearch的优势
ElasticSearch是在Java上开发的,这使得它在几乎每个平台上都是兼容的。
ElasticSearch是实时的,换句话说,一秒钟后添加的文档可以在这个引擎中搜索。
ElasticSearch是分布式的,这使得它易于在任何大组织中扩展和集成。
通过使用ElasticSearch中的网关概念,创建完整备份很容易。
与Apache Solr相比,在ElasticSearch中处理多用户非常容易。
ElasticSearch使用JSON对象作为响应,这使得用大量不同的编程语言调用ElasticSearch服务器成为可能。
ElasticSearch支持几乎所有文档类型,除了那些不支持文本呈现的。
4.ElasticSearch的缺点
ElasticSearch在处理请求和响应数据方面没有提供多语言支持(仅在JSON中可能),这与Apache Solr不同,Apache Solr中可能有CSV、XML和JSON格式。
ElasticSearch也有分裂的问题,但在极少数情况下。
5.ElasticSearch与关系数据库系统的比较
在ElasticSearch中,索引是类型的集合,正如数据库是关系数据库管理系统中表的集合一样。每个表都是行的集合,就像每个映射都是JSON对象ElasticSearch的集合一样。
| ElasticSearch | RDBMS |
|---|---|
| Index | Database |
| Shard | Shard |
| Mapping | Table |
| Field | Field |
| JSON Object | Tuple |
002 elasticsearch中的一些概念的更多相关文章
- 【分布式搜索引擎】Elasticsearch中的基本概念
一.Elasticsearch中的基本概念 以下概念基于这个例子:存储员工数据,每个文档代表一个员工 1)索引(index) 在Elasticsearch中存储数据的行为就叫做索引(indexing ...
- Elasticsearch中的一些重要概念:cluster, node, index, document, shards及replica
首先,我们来看下一下如下的这个图: Cluster Cluster也就是集群的意思.Elasticsearch集群由一个或多个节点组成,可通过其集群名称进行标识.通常这个Cluster 的名字是可以在 ...
- 如何在Elasticsearch中安装中文分词器(IK+pinyin)
如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...
- 在Elasticsearch中查询Term Vectors词条向量信息
这篇文章有点深度,可能需要一些Lucene或者全文检索的背景.由于我也很久没有看过Lucene了,有些地方理解的不对还请多多指正. 更多内容还请参考整理的ELK教程 关于Term Vectors 额, ...
- Elasticsearch教程之基础概念
基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 1.接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味 ...
- Elasticsearch中的相似度模型(原文:Similarity in Elasticsearch)
原文链接:https://www.elastic.co/blog/found-similarity-in-elasticsearch 原文 By Konrad Beiske 翻译 By 高家宝 译者按 ...
- 1.ElasticSearch介绍及基本概念
一.ElasticSearch介绍 一个采用RESTful API标准的高扩展性的和高可用性的实时性分析的全文搜索工具 基于Lucene[开源的搜索引擎框架]构建 ElasticSearch是一个面向 ...
- ELK & ElasticSearch 5.1 基础概念及配置文件详解【转】
转自:https://blog.csdn.net/zxf_668899/article/details/54582849 配置文件 基本概念 接近实时NRT 集群cluster 索引index 文档d ...
- ElasticSearch 2 (7) - 基本概念
ElasticSearch 2 (7) - 基本概念 摘要 ElasticSearch的一些基本核心概念,理解这些概念有助于ElasticSearch的学习 准实时NRT(Near Realtime) ...
随机推荐
- kubelet 参数详解
kubelet 参数详解 基本参数 --allow-privileged=true #允许容器请求特权模式 --anonymous-auth=false #不允许匿名请求到 kubelet 服务(默认 ...
- HTML&CSS基础-CSS的语法
HTML&CSS基础-CSS的语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.dome.html源代码 <!DOCTYPE html> <html ...
- ARP欺骗之ettercap图形化界面
ARP欺骗原理: 在每台主机中都有ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址(网络设备之间互相通信是用MAC地址而不是IP地址) 一.ARP欺骗 工 ...
- 解决问题:Jupyter Notebook启动不会自动打开浏览器,每次都要自己打开浏览器输入网址
1.找到anaconda下的anaconda prompt并打开(或者CMD)都可以 2.在anaconda prompt里面输入:jupyter notebook --generate-config ...
- MySQL 查询排除指定字段、自定义变量、动态执行SQL
今天在项目中,要查询一个表.这个表中有几十个字段.但是要把其中的一个特殊处理. 这个该怎么办呢?查来查去,SQL 中没有排除某一些字段的语句,只能单独写一些语句来处理: 基本思路:对于MySQL数据库 ...
- 《Exceptioning团队》第四次作业:项目需求调研与分析
一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.探索团队软件项目需求获取技巧与方法2.学会 ...
- [React] Create an Animate Content Placeholder for Loading State in React
We will create animated Content Placeholder as React component just like Facebook has when you load ...
- centOS下实践查询版本/CPU/内存/硬盘容量等硬件信息
更详细参考: https://blog.csdn.net/dream_broken/article/details/52883883 1.查看内存 DirectMap2M: 33544192 kB [ ...
- c语言数组的概念和指针的加减使用
//数组变量名:就是一个地址:就是数组首元素的地址#include <stdio.h> int main(void) { int age[5] = {10,50,100,22,44}; / ...
- 40、JSON数据源综合案例实战
一.JSON数据源综合案例实战 1.概述 Spark SQL可以自动推断JSON文件的元数据,并且加载其数据,创建一个DataFrame.可以使用SQLContext.read.json()方法,针对 ...