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协议栈(一)入门知识【转】
说来惭愧,打算写关于网络方面的知识很久了,结果到今天才正式动笔,好了,废话不多说,写一些自己能看懂的入门知识,对自己来说是一种知识的总结,也希望能帮到一些想了解网络知识的童鞋. 万事开头难,然后中间难 ...
随机推荐
- C#开发遇到的常见问题及知识点
今天遇到的类型初始值设定项引发异常的原因是:类没有添加[Serializable]属性. this.DialogResult = System.Windows.Forms.DialogResult.O ...
- 【CQ18高一暑假前挑战赛4】标程
[二分或者STL] 二分: #include<bits/stdc++.h> using namespace std; ; int a[maxn]; int main() { ,pos; s ...
- exBSGS算法
BSGS,全称\(Baby Step Giant Step\),是用于求解离散对数的一种算法. 就是用来求\(A^x \equiv B (mod\ p)\) 的x这么一种算法-- 理论知识是:在[0, ...
- vuex 命名空间
默认情况下,模块内部的action mutation getter是注册在全局命名空间的,如果希望你的模块具有更高的封装度和复用性,你可以通过添加namespaced:true的方式使其成为带命名空间 ...
- 1.大量数据导出Excel 之 多重影分身之术
还未验证过...... 摘自:http://www.cnblogs.com/axing/archive/2012/05/25/Excel-65535.html http://www.cnblogs.c ...
- 2.CSS 颜色代码大全
确实使用,不用重复造轮子了!!! 摘自:http://www.cnblogs.com/circlebreak/p/6140602.html
- 【转载】“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
c++的小细节的地方 原文地址:https://blog.csdn.net/xiaosu123/article/details/5665729 问题描述如下: 有 三个源文件,A.h.B.cpp.C. ...
- 2.11-2.12 HBase的数据迁移常见方式
一.importtsv 把hdfs中数据抽取到HBase表中: 1.准备数据 ##student.tsv [root@hadoop-senior datas]# cat student.tsv 100 ...
- linux的grep命令参数全拼详解
今天为了查找文件中某段字符,找了好久,最后成功使用指令: find . -name "*.cpp" |xargs grep -in “get_itemInfo” | grep -v ...
- 带emoji表情弹出层的评论框,semantic+emoji picker,java.sql.SQLException: Incorrect string value: '\xF0\x9F..'
在自己做一个项目玩时,在做评论的时候. 选中了semantic.js原型,这个在国内用的不是很多,但是在github上star数量很高,想当初我想找一个js框架是就在上面找的. semantic中文网 ...