万神禁足JAVA系列 | ElasticSearch教程入门重磅篇


前言

通过本篇elasticsearch入门教学,你能真正了解和使用elasticsearch进行开发,本篇适用于小白和一些有编程经验但是没有深入了解es的人


一、Elasticsearch简介

elasticsearch是使用Java编写的一种开源搜索引擎,也是一种分布式的搜索引擎架构,可以动态拓展多个节点进行对等架构,它在内部使用Luence做索引与搜索,通过对Lucene的封装,提供了一套简单一致的RESTful API,近实时操作也为他作为搜索引擎提供了支撑。

二、安装

1.Elasticsearch安装

下载链接:https://www.elastic.co/cn/downloads/elasticsearch
elasticsearch是免安装的,把 zip 包解压就可以了。
———————————————————————————
1.点击bat文件打开es(前提是JDK环境已经配置完毕)
在这里插入图片描述
2.命令行执行效果,
在这里插入图片描述

注意:所有执行失败都是环境没有配置或者版本不对应,jdk1.8对应elasticsearch.x版本,jdk14以上对应elasticsearch.x版本


3.访问127.0.0.1:9200,证明es安装成功
在这里插入图片描述


4.安装可视化工具,可视化工具有多种选择,我们这里安装的是elasticsearch-head-master
下载连接:elasticsearch-head下载
在这里插入图片描述
5.进入命令行输入npm run start 启动head插件后访问http://192.168.182.73:9100/
在这里插入图片描述
如此基本的安装环境就好了,下面咱们一起了解一下elasticsearch的基本概念和使用

三.ElasticSearch核心概念

1.数据库比对

elasticSearchmysql数据库
index (索引)database(数据库)
type(类型)数据库中的表
document (文档)数据库表每条数据
shard(分片)ES会把一个节点的数据进行分片存储,分布式存储在每个节点上
replca(副本)能正常提供查询和插入的分片我们叫做 primary shard,其余的我们就管他们叫做 replica shard(备份的分片,创建一个库的时候

2.详解概念

  1. index可以包含多个type,同样一个index下面也可以有多个shard
  2. 在ES里面每个shard就是最小的一个工作单元,承载了部分数据
  3. 如果在ES集群里面增加或减少节点,shard会自动的实现负载均衡
  4. primary shard乐意进行读和写,replica shard负责读
  5. primary shard在创建index的时候就固定了,不能修改了。
  6. 默认创建一个index的时候,primary shard的数量是5,replica的数量是1,也就是说默认情况下有10个shard,其中有5个primaryshard,5个是replica shardprimary
  7. shard和自己的replica shard是不能在同一台服务器上的。

3.ES中的搜索引擎原理

  1. 反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。 搜索引擎原理就是建立反向索引。
  2. Elasticsearch 在 Lucene的基础上进行封装,实现了分布式搜索引擎。 Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL中的数据库、表和行。 Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。
  3. Elasticsearch 一个典型应用就是 ELK 日志分析系统。

四.ES的集群搭建和使用

1.集群构建

ES里面默认有一个配置,clustername 默认值就是ElasticSearch,如果这个值是一样的就属于同一个集群,不一样的值就是不一样的集群,若动态添加节点,ES会自动负载均衡,对等架构和Master-slave略微有些区别,不过总体es还是数据主从模式的。

2.Master

  1. 管理集群的元数据,比如说索引的创建,和删除等等
  2. 集群里面master也是自动选举的。

3.对等架构

对于ES可称为对等架构,当客户端进行数据操作和访问时,ES会随意找到一个节点,这个节点不一定有我们需要的数据,每个ES里面都知道其他的数据存在哪,ES的节点会自动帮你把请求发到要查询数据的节点上。这样就真的查询出来了。而我们随意找的这个节点叫做协调节点,真正数据存放的节点会把数据返回给协调节点。协调节点返回数据。

4.容错机制

如果三台机器a,b,c,a是master挂了,重新选举一个master,假如是b,然后master会把挂了的分片在master中将副本提升为分片,如果重启了a,namea中的分片全部变成了副本,然后找各自的主分片同步数据

5.端口问题

9200端口是 ElasticSearch 节点与外部通讯使用的端口。它是 http 协议的 RESTful 接口(各种CRUD操作都是走的该端口,例如查询:http://localhost:9200/user/_search);9300端口是 ElasticSearch 节点之间通讯使用的端口。它是 tcp 通讯端口,集群间和 TCPclient 都走的此端口,所以 Java 程序中使用 ElasticSearch 时,在配置文件中要使用 9300 端口。

总结

这里讲解了es基本的使用和一些原理,后面会详细介绍源码和核心原理,这篇对于小白来讲完全够用,希望大家多多点赞收藏,我会继续发布更优质的作品进行分享

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值