Windows系统下Elasticsearch-7.15.2安装

本文为joshua317原创文章,转载请注明:转载自joshua317博客 Windows系统下Elasticsearch-7.15.2安装 - joshua317的博客

一、环境

此次笔记使用的运行环境以及软件版本

系统:WIN10

JDK版本:1.8

Elasticsearch版本:7.15.2

elasticsearch-head版本:最新

IK分词器版本:7.15.2

Kibana版本:7.15.2

二、Elasticsearch基本知识

2.1 介绍

ES是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。

Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

2.2 使用场景

(1)监听网站Nginx的日志时时同步到ES,通过Kibana来分型日志是否存在问题,服务器层面的监控;

(2)监听Mysql日志,对日志进行监控检测,对于业务来说可以进行一些辅助分析;

(3)用户行为数据埋点收集,提供大数据分析数据支持;

(4)使用ES来构建网站的全文检索引擎;

2.3 Elasticsearch 特点


(1)分布式的实时文件存储,每个字段都被索引并可被搜索;

(2)分布式的实时分析搜索引擎;

(3)可弹性扩展到上百台服务器规模,处理PB级结构化或非结构化数据;

(4)开箱即用(安装即可使用),它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。只需很少的学习既可在生产环境中使用。

2.4 ElasticSearch核心概念:倒排索引

关系型数据库 拿着文档找单词 elasticSearch 拿着单词找文档

elasticSearch中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型可以包含多个文档(行),每个文档可以包含多个字段(列)

es是面向文档的,一切都是json。

关系型数据库和elasticSearch对比

关系型数据库 elasticSearch
数据库(database) 索引 indices
表(table) 类型 types
行(row) 文档 documents
字段(columns) fields

2.5 ElasticSearch基本概念

(1) Cluster

集群是一个或多个节点的集合,它们共同保存您的整个数据,并提供跨所有节点的联合索引和搜索功能。群集由唯一的名称标识,默认情况下为“elasticsearch”。此名称很重要,因为如果节点设置为按名称加入群集,则该节点只能是群集的一部分。

确保不要在不同的环境中重用相同的群集名称,否则很可能会导致节点加入错误的群集。例如,您可以使用logging-dev,logging-stage以及logging-prod用于开发,预发和生产环境。

如果群集中只有一个节点,那么它是完全正常的。此外,您还可以拥有多个独立的集群,每个集群都有自己唯一的集群名称。

(2) Node

节点是作为集群一部分的单个服务器,存储数据并参与集群的索引和搜索功能。就像集群一样,节点由名称标识,默认情况下,该名称是在启动时分配给节点的随机通用唯一标识符(UUID)。如果不需要默认值,可以定义所需的任何节点名称。此名称对于管理目的非常重要,您可以在其中识别网络中哪些服务器与Elasticsearch集群中的哪些节点相对应。

可以将节点配置为按集群名称加入特定群集。默认情况下,每个节点都设置为加入一个名为cluster的集群elasticsearch,这意味着如果您在网络上启动了许多节点并且假设它们可以相互发现,它们将自动形成并加入一个名为elasticsearch的集群。

在单个集群中,可以拥有任意数量的节点。此外,如果网络上当前没有其他Elasticsearch节点正在运行,则默认情况下启动单个节点将形成一个名为elasticsearch的新单节点集群。

ElasticSearch本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 ElasticSearch实例。单个 ElasticSearch实例称为一个节点(node)。一组节点构成一个集群(cluster)。

(3)Index

索引是具有某些类似特征的文档集合。

例如,可以给客户数据建立一个索引,给产品目录建立另一个索引或给订单数据的建立一个索引。

索引有一个名称标识(必须全部小写),此名称用于在对其中的文档执行索引,搜索,更新和删除操作时引用索引所用。

在单个群集中,您可以根据需要定义任意数量的索引。

ElasticSearch会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。所以,ElasticSearch数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。通过下面命令可以访问当前节点的所有 Index

curl -X GET 'http://localhost:9200/_cat/indices?v'

(4)Type

Type是一个逻辑意义上的分类或者叫分区,允许在同一索引中建立多个type。本质是相当于一个过滤条件,高版本将会废弃type概念。

Document 可以分组,比如weather这个 Index 里面,可以按城市分组(北京和上海),也可以按气候分组(晴天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document。

不同的 Type 应该有相似的结构(schema),举例来说,id字段不能在这个组是字符串,在另一个组是数值。这是与关系型数据库的表的一个区别。性质完全不同的数据(比如productslogs)应该存成两个 Index,而不是一个 Index 里面的两个 Type(虽然可以做到)。

下面的命令可以列出每个 Index 所包含的 Type。

curl 'localhost:9200/_mapping?pretty=true'

注意:Elastic 6.x 版只允许每个 Index 包含一个 Type,7.x 版将会彻底移除 Type。

(5)Document

Document是可以编制索引的基本信息单元。例如,您可以为单个客户提供文档,为单个产品提供另一个文档,为单个订单提供另一个文档。该文档以JSON(JavaScript Object Notation)表示,JSON是一种普遍存在的互联网数据交换格式。

在索引/类型中,可以根据需要存储任意数量的文档。

值得注意的是,尽管文档实际上驻留在索引中,但实际上必须将文档分配给索引中的一个类型(type)中。

Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。

Document 使用 JSON 格式表示,如下所示:

{
  "id": "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值