elasticsearch组件

Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合

ElasticSearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful的全文本搜索引擎。

一、ES理论知识

ElasticSearch不仅只是一个全文本搜索引擎,它还是一个分布式实时文档存储,其中每个field均是被索引的数据且可被搜索;也是一个带实时分析功能的分布式搜索引擎,并且能够扩展至数以百计的服务器存储及处理PB级的数据。

如前所述,ElasticSearch在底层利用Lucene完成其索引功能,因此其许多基本概念源于Lucene。

1.1 索引(Index)

ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合。类比传统的关系型数据库领域来说,索引相当于SQL中的一个数据库,或者一个数据存储方案(schema)。

索引由其名称(必须为全小写字符)进行标识,并通过引用此名称完成文档的创建、搜索、更新及删除操作。一个ES集群中可以按需创建任意数目的索引。

1.2 类型(Type)

类型是索引内部的逻辑分区(category/partition),然而其意义完全取决于用户需求。因此,一个索引内部可定义一个或多个类型(type)。一般来说,类型就是为那些拥有相同的域的文档做的预定义。

例如,在索引中,可以定义一个用于存储用户数据的类型,一个存储日志数据的类型,以及一个存储评论数据的类型。类比传统的关系型数据库领域来说,类型相当于“表”。

1.3文档(Document)

文档是Lucene索引和搜索的原子单位,它是包含了一个或多个域的容器,基于JSON格式进行表示。文档由一个或多个域组成,每个域拥有一个名字及一个或多个值,有多个值的域通常称为“多值域”。每个文档可以存储不同的域集,但同一类型下的文档应该有某种程度上的相似之处。

1.4 映射(Mapping)

ES中,所有的文档在存储之前都要首先进行分析。用户可根据需要定义如何将文本分割成token、哪些token应该被过滤掉,以及哪些文本需要进行额外处理等等。另外,ES还提供了额外功能,例如将域中的内容按需排序。事实上,ES也能自动根据其值确定域的类型。

接下去再说说ES Cluster相关的一些概念。

1.5 集群(Cluster)

ES集群是一个或多个节点的集合,它们共同存储了整个数据集,并提供了联合索引以及可跨所有节点的搜索能力。多节点组成的集群拥有冗余能力,它可以在一个或几个节点出现故障时保证服务的整体可用性。集群靠其独有的名称进行标识,默认名称为“elasticsearch”。节点靠其集群名称来决定加入哪个ES集群,一个节点只能属一个集群。如果不考虑冗余能力等特性,仅有一个节点的ES集群一样可以实现所有的存储及搜索功能。

1.6节点(Node)

运行了单个实例的ES主机称为节点,它是集群的一个成员,可以存储数据、参与集群索引及搜索操作。类似于集群,节点靠其名称进行标识,默认为启动时自动生成的随机Marvel字符名称。用户可以按需要自定义任何希望使用的名称,但出于管理的目的,此名称应该尽可能有较好的识别性。

节点通过为其配置的ES集群名称确定其所要加入的集群。

1.7分片(Shard)和副本(Replica)

ES的“分片(shard)”机制可将一个索引内部的数据分布地存储于多个节点,它通过将一个索引切分为多个底层物理的Lucene索引完成索引数据的分割存储功能,这每一个物理的Lucene索引称为一个分片(shard)。

每个分片其内部都是一个全功能且独立的索引,因此可由集群中的任何主机存储。创建索引时,用户可指定其分片的数量,默认数量为5个。Shard有两种类型:primary和replica,即主shard及副本shard。Primary shard用于文档存储,每个新的索引会自动创建5个Primary shard,当然此数量可在索引创建之前通过配置自行定义,不过,一旦创建完成,其Primary shard的数量将不可更改。

Replica shard是Primary Shard的副本,用于冗余数据及提高搜索性能。

每个Primary shard默认配置了一个Replica shard,但也可以配置多个,且其数量可动态更改。ES会根据需要自动增加或减少这些Replica shard的数量。ES集群可由多个节点组成,各Shard分布式地存储于这些节点上。ES可自动在节点间按需要移动shard,例如增加节点或节点故障时。简而言之,分片实现了集群的分布式存储,而副本实现了其分布式处理及冗余功能。

二、ES基本操作

2.1索引相关

# 获取当前es中索引信息

curl -H 'Content-Type:application/json' -XGET -u sgadmin:密码 '172.26.112.219:9200/_cat/indices?v'

# 查看未分配分片shard

curl -H 'Content-Type:application/json' -XGET -u sgadmin:密码 'esdefault:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason'|grep UNASSIGNED

# 删除索引

curl -H 'Content-Type:application/json' -XDELETE -u sgadmin:密码 'esdefault:9200/search_sys_log_v1_2021_08/'

2、用户相关

# 创建超管用户/usr/share/elasticsearch/bin/elasticsearch-users useradd sgadmin -p "密码" -r superuser

# 创建集群用户

curl -s -XPOST -u 'sgadmin:密码'  http://esdefault:9200/_xpack/security/user/sgadmin -H "Content-Type:application/json" -d '{"password":"密码","roles":["superuser"]}'

# 查看集群用户

curl -s -XGET -u 'sgadmin:密码' 'localhost:9200/_xpack/security/user'

3、集群状态相关

# 查看es集群master信息

[root@ly 17:20 ~]# curl --insecure --anyauth -u sgadmin:密码 http://10.11.48.204:9200/_cat/master?v

# 查看es集群node信息

curl --insecure --anyauth -u 用户:密码 http://172.26.203.102:9200/_cat/nodes?v# 查看es集群健康状态# 状态status为green或yellow为正常

[root@ly 17:20 ~]# curl -H 'Content-Type:application/json' -XGET -u 用户:密码 '172.26.23.205:9200/_cat/health?v'

epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent

1646299257 09:20:57  wpses   yellow          1         1    661 661    0    0      220             0                  -                 75.0%

curl -u 用户:密码 -X GET http://127.0.0.1:9200/_cat/indices?v

4、插件相关

# 查看插件

curl -X  GET  -H 'Content-Type: application/json'  'http://sgadmin:密码@esdefault.default:9200/_cat/plugins?pretty'

# es的ik分词器功能验证

curl -H 'Content-Type:application/json' -XGET -u sgadmin:密码 'esdefault:9200/_analyze?pretty' -d '{ "text": "你好啊   " }'

elasticsearch组件的更多相关文章

  1. 【Elasticsearch】.NetCore中Elasticsearch组件NEST的使用

    .NetCore中Elasticsearch组件NEST的使用 1. 安装Docker # 安装Docker curl -fsSL https://get.docker.com | bash -s d ...

  2. 中间件:ElasticSearch组件RestHighLevelClient用法详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.基础API简介 1.RestHighLevelClient RestHighLevelClient的API作为ElasticSearch备 ...

  3. .net Elasticsearch 学习入门笔记

    一. es安装相关1.elasticsearch安装  运行http://localhost:9200/2.head插件3.bigdesk插件安装(安装细节百度:windows elasticsear ...

  4. Centos 7安装和配置 ElasticSearch入门小白

    实验环境: 操作系统:Centos 7.5 服务器ip:192.168.1.198 运行用户:root 网络环境:Internet 在企业生产环境有很多服务器的时候.很多业务模块的日志的时候运维人员需 ...

  5. 【读书笔记】Elasticsearch集成Hadoop最佳实践

    前言 本文记录[Elasticsearch集成Hadoop最佳实战]读书笔记 本书总计209页,共7章节,计划时间:20180712-20180717 (每天至少40页) 本文代码地址: https: ...

  6. 基于elasticsearch的自定义业务告警的设计思路

    A系统与B系统之间有很多接口交互,但是有一段时间接口经常报错,作为开发如果不能第一时间知道问题且及时解决的话就会收到业务投诉,当月绩效凉凉. 如果你也有这种场景,那么你就需要一个及时告警的功能. 实现 ...

  7. Elasticsearch配置安装

    跨域  elasticsearch-head连接es时会提示连接失败,有可能就是没有开启跨域 http.cors.enabled 是否支持跨域,默认为false http.cors.allow-ori ...

  8. Spring Boot 教程 - Elasticsearch

    1. Elasticsearch简介 Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearc ...

  9. (1)ElasticSearch搭配Kibana在linux环境的部署

    1.简介 这个章节主要介绍ElasticSearch+Kibana两个组件在linux环境的部署步骤,以及在部署过程中遇到问题解决,暂就不涉及集群部署知识点,后面章节再详细讲解这块.下面让我们来简单了 ...

  10. logstash启动失败的问题追查

    在实验中logstash是作为日志过滤器的作用,日志收集使用的则是filebeat组件.redis作为缓存器,logstash从redis中拉取数据进行过滤并传给elasticsearch组件. 但是 ...

随机推荐

  1. 首个比较研究表明维持期强柱患者减量续用TNFi疗效尚佳且药费省

    首个比较研究表明维持期强柱患者减量续用TNFi疗效尚佳且药费省 Zavada J, et al. Ann Rheum Dis. 2016,75: 96-102. 电邮发布日期: 2016年5月4日 关 ...

  2. Node.js安装、webpack 安装步骤Windows

    注意:CMD要以管理员身份打开,否则在安装webpack那一步一直报错 默认 : C:\Windows\System32 --cmd.exe 什么是Node.js? 简单的说 Node.js 就是运行 ...

  3. OpenAI Chat completion API 入门指南

    Chat completion API 入门指南 ChatGPT 由 OpenAI 最先进的语言模型 gpt-3.5-turbo 提供支持. 使用 OpenAI API,您可以使用 GPT-3.5-t ...

  4. npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree

    VScode报错:npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree 不能解析依赖树 ,需要先修复上面 ...

  5. redis 集群配置(从0到1)

    1.关闭配置文件 appendonly yes改为no 2.到redis目录下拷贝redis.conf文件 cp ./redis.conf ./7001/ cp ./redis.conf ./7002 ...

  6. Redis一主多从哨兵模式

    首先配置一主多从示例如下: 1.两台主机IP地址如下: 主: 192.168.3.81 端口:6379 从:192.168.3.82  端口:6379 从:192.168.3.82  端口:6380 ...

  7. ubutu22.04开启ssh配置

    1.查看ubuntu版本信息 lsb_release -a 2.更新系统 sudo apt update && sudo apt upgrade -y 如果出现Ign:1 ...InR ...

  8. Word17 学生儿童医保扣款方式更新的通知

    1.课程的讲解之前,先来对题目进行分析,首先需要在考生文件夹下,将Wrod素材.docx文件另存为Word.docx,后续操作均基于此文件,否则不得分. 2.这一步非常的简单,打开下载素材文件,在[文 ...

  9. combox下拉框控件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. C++ MFC学习 (五)

    Edit Control 当不设置多行时,敲击回车会关闭对话框 1 void CMFC_Demo4Dlg::OnBnClickedButton2() 2 { 3 // TODO: 在此添加控件通知处理 ...