Elasticsearch介绍

Elasticsearch介绍

  • 一个分布式的实时文档存储,每个字段可以被索引与搜索;
  • 一个分布式实时分析搜索引擎
  • 能胜任上百个服务节点的扩展,并支持PB级别的结构化或者非结构化数据

倒排索引又叫反向索引, 以诗句内容中的一些关键字作为索引,来找到诗句

本来正向就只有一个索引,反向却有10个索引,这样下去记忆量会爆炸性增长。

搜索引擎的三大过程,爬取内容,进行分词,建立反向索引

Lucene是一个库,必须要懂一点搜索引擎原理的人才能用得好,所以后来又有人基于Lucene进行封装,写出了Elasticsearch

  • elasticsearch将对搜索引擎的操作都封装成了restful的api,通过http请求就可以对其进行操作
  • es考虑了海量数据,实现了分布式,是一个可以存储海量数据的分布式搜索引擎

ES基本概念

  • 索引:索引是存放数据的地方,可以理解为mysql中的一个数据库
  • 类型:类型是用来定义数据结构的,可以认为是mysql中的一张表,
  • 文档:文档就是最终的数据了,可以认为一个文档就是一条记录文档,就是行

es中的概念和mysql中的概念的对比

Elasticsearch介绍

在Elasticsearch中,节点是对等的,节点间会通过自己的一些规则选取集群的master,master会负责集群状态信息的改变,并同步给其它节点,所以如果建立一个索引,就是先通知master建立索引,然后这个信息再同步给其他节点。

注意:

只有建立索引和类型需要经过master,数据的写入有一个简单的routing规则,可以route到集群中的任意节点,所以数据写入压力是分散在整个集群的。

ELASTICSARCH的其他应用场景

ELK系统

elasticsearch除了做搜索引擎,还用它来搭建elk系统,也就是日志分析系统,其中e就是elasticsearch,l 是logstash,是一个日志收集系统,K是kibana,是一个数据可视化平台

Elasticsearch介绍

logstash采集业务系统日志,存储在es中,通过kibana展现给运维人员分析

分析日志的用处:

分析日志的用处很大,加入一个分布式系统有1000台机器,系统出现故障时,要看日志,得一台一台登录上去查看,非常麻烦。但是如果日志接入了ELK系统,在系统运行过程中,突然出现了异常,在日志中就能及时反馈,日志进入ELK系统,我们直接在kibana就能看到日志情况,如果再接入一些实时计算模块,还能做实时报警功能

入ELK系统,我们直接在kibana就能看到日志情况,如果再接入一些实时计算模块,还能做实时报警功能

https://developer.51cto.com/art/201904/594615.htm