在本文中,主要是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中的一些概念的更多相关文章

  1. 【分布式搜索引擎】Elasticsearch中的基本概念

    一.Elasticsearch中的基本概念 以下概念基于这个例子:存储员工数据,每个文档代表一个员工 1)索引(index)  在Elasticsearch中存储数据的行为就叫做索引(indexing ...

  2. Elasticsearch中的一些重要概念:cluster, node, index, document, shards及replica

    首先,我们来看下一下如下的这个图: Cluster Cluster也就是集群的意思.Elasticsearch集群由一个或多个节点组成,可通过其集群名称进行标识.通常这个Cluster 的名字是可以在 ...

  3. 如何在Elasticsearch中安装中文分词器(IK+pinyin)

    如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...

  4. 在Elasticsearch中查询Term Vectors词条向量信息

    这篇文章有点深度,可能需要一些Lucene或者全文检索的背景.由于我也很久没有看过Lucene了,有些地方理解的不对还请多多指正. 更多内容还请参考整理的ELK教程 关于Term Vectors 额, ...

  5. Elasticsearch教程之基础概念

    基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 1.接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台.这意味 ...

  6. Elasticsearch中的相似度模型(原文:Similarity in Elasticsearch)

    原文链接:https://www.elastic.co/blog/found-similarity-in-elasticsearch 原文 By Konrad Beiske 翻译 By 高家宝 译者按 ...

  7. 1.ElasticSearch介绍及基本概念

    一.ElasticSearch介绍 一个采用RESTful API标准的高扩展性的和高可用性的实时性分析的全文搜索工具 基于Lucene[开源的搜索引擎框架]构建 ElasticSearch是一个面向 ...

  8. ELK & ElasticSearch 5.1 基础概念及配置文件详解【转】

    转自:https://blog.csdn.net/zxf_668899/article/details/54582849 配置文件 基本概念 接近实时NRT 集群cluster 索引index 文档d ...

  9. ElasticSearch 2 (7) - 基本概念

    ElasticSearch 2 (7) - 基本概念 摘要 ElasticSearch的一些基本核心概念,理解这些概念有助于ElasticSearch的学习 准实时NRT(Near Realtime) ...

随机推荐

  1. kubelet 参数详解

    kubelet 参数详解 基本参数 --allow-privileged=true #允许容器请求特权模式 --anonymous-auth=false #不允许匿名请求到 kubelet 服务(默认 ...

  2. HTML&CSS基础-CSS的语法

    HTML&CSS基础-CSS的语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.dome.html源代码 <!DOCTYPE html> <html ...

  3. ARP欺骗之ettercap图形化界面

    ARP欺骗原理: 在每台主机中都有ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址(网络设备之间互相通信是用MAC地址而不是IP地址) 一.ARP欺骗 工 ...

  4. 解决问题:Jupyter Notebook启动不会自动打开浏览器,每次都要自己打开浏览器输入网址

    1.找到anaconda下的anaconda prompt并打开(或者CMD)都可以 2.在anaconda prompt里面输入:jupyter notebook --generate-config ...

  5. MySQL 查询排除指定字段、自定义变量、动态执行SQL

    今天在项目中,要查询一个表.这个表中有几十个字段.但是要把其中的一个特殊处理. 这个该怎么办呢?查来查去,SQL 中没有排除某一些字段的语句,只能单独写一些语句来处理: 基本思路:对于MySQL数据库 ...

  6. 《Exceptioning团队》第四次作业:项目需求调研与分析

    一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.探索团队软件项目需求获取技巧与方法2.学会 ...

  7. [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 ...

  8. centOS下实践查询版本/CPU/内存/硬盘容量等硬件信息

    更详细参考: https://blog.csdn.net/dream_broken/article/details/52883883 1.查看内存 DirectMap2M: 33544192 kB [ ...

  9. c语言数组的概念和指针的加减使用

    //数组变量名:就是一个地址:就是数组首元素的地址#include <stdio.h> int main(void) { int age[5] = {10,50,100,22,44}; / ...

  10. 40、JSON数据源综合案例实战

    一.JSON数据源综合案例实战 1.概述 Spark SQL可以自动推断JSON文件的元数据,并且加载其数据,创建一个DataFrame.可以使用SQLContext.read.json()方法,针对 ...