Elasticsearch笔记基础入门

本文是Elasticsearch的基础入门教程,讲解了ES的非关系型数据库特性、常见使用场景,如站内搜索和日志系统,并介绍了安装、启动流程。深入探讨了ES的核心概念,包括NRT、集群、节点、索引、类型、文档以及分片和副本,帮助读者降低对Elasticsearch的陌生度。
摘要由CSDN通过智能技术生成

并不能保证通过这四篇文章让你掌握ES,但是!我会用大白话串讲ES的一些概念、和花哨的玩法。起码可以把你对Elasticsearch的陌生度降到最低,等有一天你自己业务需要使用ES时,会因为提前读了ES笔记而快速上手。

1.1、认识ES

关系型数据库:

像MySQL这种数据库就是传统的关系型数据库。它有个很直观的特点:每一张数据表的列在创建表的时候就需要确定下来。比如你创建一个user表,定义了3列id、username、password。这时如果你的实体类中多了一个age的字段,那这个实体是不能保存进user表的。(当然后续你可以通过DDL修改添加列或者减少列。让实体类的属性和表中的列一一对应)。

非关系型数据库:

非关系型数据库也就是我们常听说的NoSQL。常见的有:MongoDB、Redis、Elasticsearch。

且不说性能方面,单说使用方面NoSQL这种非关系类型的数据库都支持你往它里面存储一个json对象,这个json有多少个字段并不是它关系的,拿上面的例子来说,只要你给他一个对象,不管有没有age、它都能帮你存储进去。

关于ES更多的知识点我们在下文中展开,再说一下ES常见的使用场景和特性:

站内搜索:

如果你的公司想做自己的站内搜索,那ES再合适不过了。作为非关系型数据库的ES允许你往它里面存储各种格式不确定的Json对象,还为你提供了全文本搜索和分析引擎。它使您可以快速,近乎实时地(1 s)存储,搜索和分析大量数据。一个字:快!

日志采集系统:

Elasticsearch是Elastic公司的核技术,并且Elastic公司还有其他诸如:Logstash、Filebeat、Kibana等技术栈。常见的公司里面使用的日志管理系统就可以使用ELK+Filebeat搭建起来,Filebeat收集日志推送到Logstash做处理,然后Logstash将数据存储入ES,最终通过Kibana展示日志。

可扩展性:

Elasticsearch天生就是分布式的,既能以单机的形式运行一台性能很差的服务器上。它也可以形成一个成百上千节点的集群。并且它自己会管理集群中的节点,在ES中我们可以随意的添加、摘除节点,集群自己会将数据均摊在各个节点上。

1.2、安装、启动ES、Kibana、IK分词器

  1. 安装很简单,所以详细过程不会写到文章中。

  2. 安装启动教程、ES、Kibana、IK分词器安装包都以百度网盘的方式分享给大家,后台回复:es 可领取

二、核心概念

因为这是第一篇基础篇,对小白友好一些,所以需要先了解一些基本概念,你可以耐折性子读一下,都不难理解的哈。

2.1、Near Realtime (NRT)

ES号称对外提供的是近实时的搜索服务,意思是数据从写入ES到可以被Searchable仅仅需要1秒钟,所以说基于ES执行的搜索和分析可以达到秒级。

2.2、Cluster

集群:集群是一个或多个node的集合,它们一起保存你存放进去的数据,用户可以在所有的node之间进行检索,一般的每个集群都会有一个唯一的名称标识,默认的名称标识为 elasticsearch ,这个名字很重要,因为node想加入cluster时,需要这个名称信息。

确保别在不同的环境中使用相同的集群名称,进而避免node加错集群的情况,一颗考虑下面的集群命名风格logging-stagelogging-devlogging-pro

2.3、Node

单台server就是一个node,它和cluster一样,也存在一个默认的名称。但是它的名称是通过UUID生成的随机串,当然用户也可以定制不同的名称,但是这个名字最好别重复。这个名称对于管理来说很在乎要,因为需要确定,当前网络中的哪台服务器,对应这个集群中的哪个节点

node存在一个默认的设置,默认的,当每一个node在启动时都会自动的去加入一个叫elasticsearch的节点,这就意味着,如果用户在网络中启动了多个node,它们会彼此发现,然后组成集群

在单个的cluster中,你可以拥有任意多的node。假如说你的网络上没有其它正在运行的节点,然后你启动一个新的节点,这个新的节点自己会组建一个集群。

2.4、Index

index是一类拥有相似属性的document的集合。比如你可以为消费者的数据创建一个index,为产品创建一个index,为订单创建一个index。

index名称(必须是小写的字符)。 当需要对index中的文档执行索引、搜索、更新、删除、等操作时,都需要用到这个index。

理论上:你可以在一个集群中创建任意数量的index

2.5、Type

Type可以作为index中的逻辑类别。为了更细的划分,比如用户数据type、评论数据type、博客数据type

在设计时尽最大努力让拥有更多相同field的document划分到同一个type下。

2.6、Document

document就是ES中存储的一条数据,就像mysql中的一行记录一样。它可以是一条用户的记录、一个商品的记录等等

2.7、一个不严谨的小结:

为什么说这是不严谨的小结呢? 就是说下面三个对应关系只能说的从表面上看起来比较相似。但是ES中的type其实是一个逻辑上的划分。数据在存储是时候依然是混在一起存储的(往下看下文中有写),而mysql中的不同表的两个列是绝对没有关系的。

Elasticsearch 关系型数据库
Document
type
index 数据库

2.8、Shards & Replicas

2.8.1、问题引入:

如果让一个Index自己存储1TB的数据,响应的速度就会下降。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值