Elasticsearch之入门知识
elasticsearch是一个高度可扩展得开源全文搜索和分析的引擎。可以快速、近实时的存储,搜索和分析大量数据。通常用作底层引擎技术,为具有复杂搜索功能和要求的程序提供支持。
用处:
• 运行网上商店,允许客户搜索产品。可以使用elasticsearch存储整个产品目录和库存,并为它们提供搜索和自动填充建议。
• 收集日志或交易数据,并且可以分析和挖掘此数据以查找趋势,统计信息,摘要或异常。可以使用logstash将收集到的数据提供给elasticsearch,然后elasticsearch可以运行搜索和聚合来挖掘需要的信息。
• 运行价格警报平台,允许精通价格的客户指定的一条规则,例如我想要购买的商品在下个月从任何供应商降价n元,我希望收到通知。这样可以刮取供应商价格,将其推入elasticsearch并使用其反响搜索功能来匹配价格变动与客户查询,并最终在发现匹配后将警报推送给客户。
• 快速调查,分析,可视化并询问有关大量数据的特定问题,数百万或数十亿条记录。可以使用elasticsearch存储数据,然后使用kibana构建自定义仪表板。
基本概念:
近实时(NRT)
elasticsearch是一个近实时的搜索平台,从索引文档到可搜索文档的时间有一点延迟,大概是一秒。
集群
集群是一个或多个节点的集合,它们共同保存整个数据,并提供跨所有节点的联合索引和搜索功能。集群由唯一名称标识,默认情况下为“elasticsearch”。这个名称很重要,因为如果节点设置为按名称加入集群,则该节点只能是集群的一部分。
注意不要在不同的环境中重用相同的集群名称,否则最终会导致节点加入到错误的集群里。例如,可以使用logging-dev,logging-test,logging-prod。
如果集群里只有一个节点,那么它是完全正常的。拥有多个独立的集群的话,每个集群都有自己唯一的名称。
节点
节点是作为集群里的单个服务器,存储数据并参与集群的索引和搜索功能。节点由名称标识,默认情况下,该名称是在启动时分配给节点的随机通用唯一标识符(UUID)。也可以自己定义所需的任何节点名称。此名称对于管理目的非常重要,可以在其中识别网络中哪些服务器与elasticsearch集群中的哪些节点相对应。
可以将节点配置为按集群名称加入特定集群。默认情况下,每个节点都设置为加入一个名为cluster的进去elasticsearch,这意味着如果在网络上启动许多节点并且假设它们可以互相发现,它们将自动形成并加入一个名为elasticsearch的集群。在单个集群中,可以拥有任意数量的节点。
索引
索引是具有相似的文档集合,例如可以为客户数据提供索引,为产品目录建立另一个索引,以及为订单数据建立另一个索引。索引由名称标识,必须全部为小写,该名称用于在对其中的文档执行索引、搜索、更新和删除操作时引用索引,在单个集群里,可以定义尽可能多的索引。
类型
在索引中,可以定义一个或多个类型,类型时索引的逻辑类别。类型定义为具有公共字段集的文档。假设运行一个博客平台,并将所有数据存储在一个索引中。在这个索引中,可以为用户数据定义一种类型,为博客数据定义另一种类型,以及为注释数据定义另一类型。
文档
文档时可以被索引的信息的基本单位。例如为单个客户提供一个文档,单个产品提供另一个文档,以及单个订单提供另一个文档。表现形式为json。
分片和副本
索引可以存储大量的数据,这些数据可能超过单个节点的硬件限制。例如十亿个文件占用磁盘空间1TB的单指标可能不适合对单个节点的磁盘或可能太慢服务仅从单个节点的搜索请求。
为了解决这个问题,elasticsearch提供细分指标,分成多个块称为分片的能力。当你创建一个索引,你可以简单的定义你想要的分片数量。每个分片本身是一个全功能的、独立的指数,可以托管在集群中的任何节点。
分片特征:
• 分片允许水平拆分或缩放内容的大小
• 分片允许分配和并行操作的碎片(可能在多个节点上)从而提高性能或吞吐量
这个机制中的碎片是分布式的以及其文件汇总到搜索请求时完全由elasticsearch管理,对用户来说是透明的。
在同一个集群网络上,故障时任何时候都可能出现的,拥有一个故障转移机制以防分片和节点因为某些原因离线或消失是非常有用的,并且被强烈推荐。elasticsearch允许创建一个或多个拷贝,索引分片进入所谓的副本或称作复制品的分片,简称副本。
副本特征:
• 副本为分片或节点失败提供了高可用性。需要注意的是,一个副本的分片不会分配在同一个节点作为原始的或主分片,副本是从主分片那里赋值过来的
• 副本允许用户扩展你的搜索量或吞吐量,因为搜索可以在所有副本上执行
Elasticsearch之入门知识的更多相关文章
- [置顶] Mysql存储过程入门知识
Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...
- 移动H5开发入门知识,CSS的单位汇总与用法
说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...
- H5移动端开发入门知识以及CSS的单位汇总与用法
说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...
- Java web 入门知识 及HTTP协议详解
Java web 入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...
- Java基础入门知识
Java编程入门知识 知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...
- zabbix入门知识
zabbix入门知识 zabbix中文手册 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介绍 Zabbix 是一个企业级的分布式开 ...
- React的入门知识与概念【1】
回顾在以往的项目开发中,从最初的使用的原生html+js+css+jquery开发,到后来随着项目功能的增加,也渐渐学习了Vue.js框架的开发,以及Vue.js的全家桶Axios,Vue-route ...
- 我的Python笔记补充:入门知识拾遗
声明:本文整理借鉴金角大王的Python之路,Day1 - Python基础1,仅供本人学习使用!!! 入门知识拾遗 一.bytes类型 二.三元运算 1 result = 值1 if 条件 else ...
- 浅谈TCP IP协议栈(一)入门知识【转】
说来惭愧,打算写关于网络方面的知识很久了,结果到今天才正式动笔,好了,废话不多说,写一些自己能看懂的入门知识,对自己来说是一种知识的总结,也希望能帮到一些想了解网络知识的童鞋. 万事开头难,然后中间难 ...
随机推荐
- easyui-tabs 在ie8下基于iframe嵌套页面加载成功后切换空白问题
这是一个很坑的问题,由于项目必须支持ie8的情况下,产生了这个问题.在我进行逐步对比的分析过后,终于发现了原因所在:
- EnumDescription
using System; using System.Reflection; using System.Collections; using System.Collections.Generic; n ...
- w3C盒子模型和IE的盒子模型
W3C 盒子模型的范围包括 margin.border.padding.content,并且 content 部分不包含其他部分IE 盒子模型的范围也包括 margin.border.padding. ...
- C++之匿名对象解析
我们知道在C++的创建对象是一个费时,费空间的一个操作.有些固然是必不可少,但还有一些对象却在我们不知道的情况下被创建了.通常以下三种情况会产生临时对象: 1,以值的方式给函数传参: 2,类型 ...
- Count Subsets
题意: 给一集合 $S = \{ 1,2, ... , n \} $,取两个S的子集 A和B,使得A不是B的子集,且B不是A的子集. 解法: 1.牛顿展开 我们采用容斥,显然有 $$ans(n) = ...
- linux中网络编程<1>
1 网络编程API (1)网络层的ip地址可以唯一标识网络中的主机,传输层通过协议+端口唯一标识主机中的应用程序.这样以来使用三元组(地址,协议,端口)标识网络的进程. (2)socket---> ...
- c/c++时间相关
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时.时间的获取.时间的计算和显示格式等方面进行了阐述.本文还通过大量的实例向你展示了time.h头文件中声明的 ...
- Identity Server 4 原理和实战(完结)_汇总贴
视频地址:https://www.bilibili.com/video/av42364337 语雀地址:https://www.yuque.com/yuejiangliu/dotnet/solenov ...
- 09.客户端集成IdentityServer
09.客户端集成IdentityServer 新建API的项目 dotnet new webapi --name ClientCredentialApi 在我们上一节课的代码IdentityServe ...
- 已有项目 iPhoneX 适配
一.Assets 文件图片管理下的 LaunchImage 添加 iOS8.0 and latter 一项,并放一张 1125*2436 的LaunchPage 到对应的位置上. 二.有关 iPhon ...