2018/2/5 ELK技术栈之ElasticSearch学习笔记
npm config set registry https://registry.npm.taobao.org
npm config get registry
支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
一个异常加上
node.max_local_storage_nodes: 256
ElasticSearch是一个基于Lucence的搜索服务器.
它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.
相比于solr可以使用xml,csv,json等进行交互,ElasticSearch只能用json进行交互;
与lucence和solr创建索引时以一个域名和分词后的其值(组合起来教term)作为索引不同的是,ElasticSearch里静态词意的索引并不针对于term建立索引.而是一个类似数据库的逻辑命名空间;
动态词意上则可以称作将某个文档放到索引里;
再细化后就是Type,可以理解为表.
再细化后就是Document,相当于一行数据(这个倒是跟lucence和solr差不多).
最基础的单元就是field,相当于一列数据.
Shards(分片(每一个分片都是一个luncence实例,是一个完整的搜索引擎,但我们不直接与它通信)),ElasticSearch能自动根据节点的增加动态调整复制分片.这也是为什么说ElasticSearch天生就是分布式的原因之一,
ElasticSearch可以将一个索引分成若干个存到集群中的Node中(分片的数量是在建立索引时就需要确定的,但不用担心节点扩容和缩小的问题,ElasticSearch可以自动根据你的节点数量来迁移分片).
replicas(复制)见其名知其义,就是将索引复制一份或者多份,作为副本(复制单元是分片,本身有算法能保证不会有相同分片在同一个节点上,并且复制分片在主分片没有出问题的情况下,只负责读,读针对于客户端发来的请求以及从其它的分片中读取更新的文档).
在ElasticSearch中映射Mapping不需要定义映射类型,在我们存入第一行json时会自动根据我们存入的数据类型而确定其数据类型.
MasterNode负责整理和管理元信息;
DataNode负责存储和响应数据;
任何一个节点都是一个ElaticSearch实例,任何一个节点都可以接受客户端的请求,并能从元信息中获取到具体数据所在的节点,之后将请求转发到存在文档的对应节点上,之后收集各个节点返回的数据,最后一起返回给客户端;
与ElasticSearch服务端交互的三种方式:
一:节点客户端
ClientNode会作为一个非数据节点加入到集群中,它本身不保存任何数据,但ClientNode拥有元信息,这样当用户发来请求后ClientNode能根据元信息中的索引信息到对应的DataNode节点上进行数据请求;
二:传输客户端
不会加入集群,但可以把请求转发到集群中的一个节点上;
三:使用RESTful API进行交互
这个没什么说的,任何语言都可以使用json通过RESTful API与ElasticSearch服务进行交互.Linux则是通过curl命令(Linux下用来模拟http请求的技术)来进行交互;
ElaticSearch数据格式:
String:text/keyword(这两个的区别在于text会默认进行分词,而keyword则相反)
Number:六种数据类型:byte,short,Integer,long,double,float
data:这个可以自定义,比如,yyyy-MM-dd HH:mm:ss(默认类型为:strict_date_optional_time||epoch_millis)
boolean:布尔值
ip:(ipv4和ipv6都支持)
geo_point:地图坐标
nested:嵌套类型
object:json对象
binary:二进制
ElasticSearch集群分为三个状态,使用/_cluster/health可查询
green:所有主分片和副本分片都正常运行
yellow:不是所有的副本分片都正常,但主分片都正常
red:有主分片不正常并且没有副本分片能替代它(如果某一个主分片异常了,ElasticSearch能检测到,并升级对应的副本分片为主分片,在其恢复正常后,会重新将副本分片的数据重新导入给原主分片)
ElasticSearch模板和mapping索引字段类型映射:
mapping字段映射分为三种状态:1.dynamic:strict 2.dynamic:no 3.dunamic:true
第一种状态为严格的按照创建索引时指定的字段类型进行映射,如果你添加了非此类型的也不会报错,但是其不会被索引
第二种和第一种相同;
第三种就是动态的,你也可以在创建索引时指定,在之后你新增的类型字段会自动根据其类型加上映射索引字段
模板的意思就如同字面上一样,预定义一个模板,在之后可以指定这个模板,或者使用通配符自动为索引配置此模板里定义好的参数信息;
mapping和模板都可以使用通配符进行自动匹配,一般情况下是配合使用;mapping还可以使用match自动为某个字段定义类型;
并且模板可以设置order属性自定义优先级(order值越大优先级越高);
2018/2/5 ELK技术栈之ElasticSearch学习笔记的更多相关文章
- 2018/2/11 ELK技术栈之ElasticSearch学习笔记二
终于有时间记录一下最近学习的知识了,其实除了写下的这些还有很多很多,但懒得一一写下了: ElasticSearch添加修改删除原理:ElasticSearch的倒排索引和文档一旦生成就不允许修改(其实 ...
- ELK技术栈之-Logstash详解
ELK技术栈之-Logstash详解 前言 在第九章节中,我们已经安装好Logstash组件了,并且启动实例测试它的数据输入和输出,但是用的是最简单的控制台标准输入和标准输出,那这节我们就来深入的 ...
- 应用编排服务之ELK技术栈示例模板详解
日志对互联网应用的运维尤为重要,它可以帮助我们了解服务的运行状态.了解数据流量来源甚至可以帮助我们分析用户的行为等.当进行故障排查时,我们希望能够快速的进行日志查询和过滤,以便精准的定位并解决问题. ...
- 2018/2/13 ElasticSearch学习笔记三 自动映射以及创建自动映射模版,ElasticSearch聚合查询
终于把这些命令全敲了一遍,话说ELK技术栈L和K我今天花了一下午全部搞定,学完后还都是花式玩那种...E却学了四天(当然主要是因为之前上班一直没时间学,还有安装服务时出现的各种error真是让我扎心了 ...
- ElasticSearch学习笔记(超详细)
文章目录 初识ElasticSearch 什么是ElasticSearch ElasticSearch特点 ElasticSearch用途 ElasticSearch底层实现 ElasticSearc ...
- Elasticsearch学习笔记一
Elasticsearch Elasticsearch(以下简称ES)是一款Java语言开发的基于Lucene的高效全文搜索引擎.它提供了一个分布式多用户能力的基于RESTful web接口的全文搜索 ...
- elasticsearch学习笔记——相关插件和使用场景
logstash-input-jdbc学习 ES(elasticsearch缩写)的一大优点就是开源,插件众多.所以扩展起来非常的方便,这也造成了它的生态系统越来越强大.这种开源分享的思想真是与天朝格 ...
- 【原】无脑操作:ElasticSearch学习笔记(01)
开篇来自于经典的“保安的哲学三问”(你是谁,在哪儿,要干嘛) 问题一.ElasticSearch是什么?有什么用处? 答:截至2018年12月28日,从ElasticSearch官网(https:// ...
- elasticsearch学习笔记--原理介绍
前言:上一篇中我们对ES有了一个比较大概的概念,知道它是什么,干什么用的,今天给大家主要讲一下他的工作原理 介绍:ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户 ...
随机推荐
- [UWP]使用Reveal
1. 前言 之前在 如何使用Fluent Design System 这篇文章里已经简单介绍过Reveal的用法,这篇再详细介绍其它内容. 2. 自定义RevealButtonStyle 我觉得常用I ...
- eclipse F3可以查询某个方法的具体定义
eclipse F3可以查询某个方法的具体定义
- Vue.js学习网址
Vue官网:http://cn.vuejs.org/v2/guide/index.html 淘宝镜像:http://npm.taobao.org/ Vue-router:https://router. ...
- Java 得到泛型中得到T.class
Class <T> entityClass = (Class <T>) ((ParameterizedType) getClass().getGenericSuperclass ...
- 配置python+mod_wsgi+apache 时 在浏览器中访问服务器时报错:Invalid HTTP_HOST header: 'XXXXX'. You may need to add u'XXXXX' to ALLOWED_HOSTS,在setting.py中添加‘*”无效的原因
配置python+mod_wsgi+apache 时 在浏览器中访问服务器时报错:Invalid HTTP_HOST header: 'XXXXX'. You may need to add u'XX ...
- kafka学习
kafka名词解释和工作方式: Producer :消息生产者,就是向kafka broker发消息的客户端. Consumer :消息消费者,向kafka broker取消息的客户端 Topic : ...
- 【Code clone】Distributed Code Clone Detection Based on Index
1 摘要 随着软件产业的发展,代码克隆现象越来越常见,随之带来的安全漏洞.可维护性.产权等问题也引起人们重视.代码克隆按照复制程度分为4类:完全复制.修改名称.更换顺序和自实现.现有的代码克隆检测工 ...
- python2.7.5 安装pip 良心推荐,超级简单.
1 先安装setuptools 下载地址:https://pypi.python.org/pypi/setuptools#downloads 将下载后的tar文件解压,用CMD模式进入到解压后的文件所 ...
- jdk源码->集合->ArrayList
类的属性 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomA ...
- 使用EndNote在Word中插入参考文献的格式设置
endnote其实自带了很多参考文献格式的样式,如下图,但往往跟我们要使用的会有所出入,本文主要介绍的就是设置自定义endnote参考文献格式,以endnote X6和word2003为例,其它版本以 ...