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

文章目录

  • 前言
  • 一、Elasticsearch简介
  • 二、安装
    • 1.Elasticsearch安装
  • 三.ElasticSearch核心概念
    • 1.数据库比对
    • 2.详解概念
    • 3.ES中的搜索引擎原理
  • 四.ES的集群搭建和使用
    • 1.集群构建
      • 2.Master
      • 3.对等架构
      • 4.容错机制
      • 5.端口问题
  • 总结


前言

通过本篇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环境已经配置完毕)
万神禁足JAVA系列 | ElasticSearch教程入门重磅篇_第1张图片
2.命令行执行效果,
万神禁足JAVA系列 | ElasticSearch教程入门重磅篇_第2张图片

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


3.访问127.0.0.1:9200,证明es安装成功
万神禁足JAVA系列 | ElasticSearch教程入门重磅篇_第3张图片


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

三.ElasticSearch核心概念

1.数据库比对

elasticSearch mysql数据库
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基本的使用和一些原理,后面会详细介绍源码和核心原理,这篇对于小白来讲完全够用,希望大家多多点赞收藏,我会继续发布更优质的作品进行分享

你可能感兴趣的:(elasticsearch,elasticsearch,java,搜索引擎,学习,全文检索)