在本文中,主要是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. 白话解说TCP/IP协议三次握手和四次挥手

    白话解说TCP/IP协议三次握手和四次挥手 1.背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 1.1.问题 有时候聊天的过程中,我的 ...

  2. python实现抖音多线程下载无水印视频【附源码】

    昨天发了一个无水印解析,评论说想要多线程下载,还是比较简单的. py文件同目录下创建url.txt,把链接一行一行复制进去,就能批量下载. 代码中的延时不能去掉,由于是多线程,速度较快,延时很重要. ...

  3. PHP——curl设置请求头需要注意哪些

    前言 在设置这个请求头上踩了一些坑,此文记录下. 步骤 设置请求头 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 请求头写法 一定不要忘记:不然进行请求 ...

  4. linux虚拟机互访

    我们是按照一个小组有6个人在linux虚拟机中一个网卡配置三个ip:172.16.31.xxx;  192.168.180.xxx;   192.168.180.50+xxx;并且6台虚拟机还能够进行 ...

  5. 肤浅的聊聊 TiDB 扫表算子, 扫索引算子, 合取范式(CNF), 析取范式(DNF), skyline pruning

    这一章主要涉及TiDB如下的源码: 1. 扫表算子怎样转换为扫索引算子; 2. 怎样把Selection算子的过滤条件化简, 转为区间扫描; 假设我们有一个表: t1( id int primary ...

  6. LOJ P10176 最大连续和 题解

    每日一题 day29 打卡 Analysis 朴素的DP方程为: dp[i]=max{sum[i]-sum[j-1]}; 对于每个i 需要用单调队列维护最小的sum[j-1] 注意: 1.tail初值 ...

  7. linux学习6 Linux系统组成及初始

    一.linux发行版回顾 1.版本回顾 2.Linux基础 a.CPU架构 32位CPU: X86 64位CPU:X64因为最早的X64位CPU是amd公司生产的所以也叫 amd64(可以兼容X86) ...

  8. (尚001)Vue框架介绍

    框架出现时间: Angular -->React(组件化+虚拟动) -->Vue(读作view) 1.Vue.js是什么?(作者:尤雨溪(一位华裔前Google工程师))        尤 ...

  9. am335x system upgrade kernel ec20 simcom7600ce(十一)

    1      Scope of Document This document describes 4G hardware design, support quectel ec20 4G module/ ...

  10. qt加快编译速度

    菜单栏->工具-> 选项->构建与运行->构建套件->点击自动检测内容->在同一页面找到 Environment ->点击change ->在弹出的窗口 ...