【业务功能篇81】微服务SpringCloud-ElasticSearch-Kibanan-docke安装-入门实战

news2024/11/17 10:24:54

image.png

ElasticSearch

一、ElasticSearch概述

1.ElasticSearch介绍

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

  ElasticSearch的底层是开源库Lucene,但是你没办法直接用Lucene,必须自己写代码去调用它的接口,Elastic是Lucene的封装,提供了REST API的操作接口,开箱即用。天然的跨平台。

  全文检索是我们在实际项目开发中最常见的需求了,而ElasticSearch是目前全文检索引擎的首选,它可以快速的存储,搜索和分析海量的数据,维基百科,GitHub,Stack Overflow都采用了ElasticSearch。

官方网站:https://www.elastic.co/cn/elasticsearch/

中文社区:https://elasticsearch.cn/explore/

2.ElasticSearch用途

  1. 搜索的数据对象是大量的非结构化的文本数据。
  2. 文件记录达到数十万或数百万个甚至更多。
  3. 支持大量基于交互式文本的查询。
  4. 需求非常灵活的全文搜索查询。
  5. 对高度相关的搜索结果的有特殊需求,但是没有可用的关系数据库可以满足。
  6. 对不同记录类型,非文本数据操作或安全事务处理的需求相对较少的情况。

3. ElasticSearch基本概念

image.png

3.1 索引

  索引(indices)在这儿很容易和MySQL数据库中的索引产生混淆,其实是和MySQL数据库中的Databases数据库的概念是一致的。

3.2 类型

  类型(Type),对应的其实就是数据库中的 Table(数据表),类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同。

3.3 文档

  文档(Document),对应的就是具体数据行(Row)

3.4 字段

  字段(field)相对于数据表中的列,也就是文档中的属性。

4. 倒排索引

  Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好.

  倒排索引是搜索引擎的核心。搜索引擎的主要目标是在查找发生搜索条件的文档时提供快速搜索。ES中的倒排索引其实就是 lucene 的倒排索引,区别于传统的正向索引,倒排索引会再存储数据时将关键词和数据进行关联,保存到倒排表中,然后查询时,将查询内容进行分词后在倒排表中进行查询,最后匹配数据即可。

image.png

image.png

image.png

具体拆解的案例

记录
红海1,2,3,4,5
行动1,2,3
探索2,5
特别3,5
记录篇4
特工5

保存的对应的记录为

1-红海行动

2-探索红海行动

3-红海特别行动

4-红海记录篇

5-特工红海特别探索

分词:将整句分拆为单词

检索信息:

  1. 红海特工行动?
  2. 红海行动?

二、ElasticSearch相关安装

image.png

1.Elasticsearch安装

  ElasticSearch安装就相当于安装MySQL数据库。

下载对应的镜像文件

docker pull elasticsearch:7.4.2

创建需要挂载的目录

mkdir -p /mydata/elasticsearch/config

mkdir -p /mydata/elasticsearch/data

echo “http.host : 0.0.0.0” >> /mydata/elasticsearch/config/elasticsearch.yml

安装ElasticSearch容器

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” -e ES_JAVA_OPTS=“-Xms64m -Xmx128m” -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.4.2

启动异常:

elasticsearch.yml配置文件的 : 两边需要添加空格

还有就是访问的文件权限问题:

image.png

没有权限我们就添加权限就可以了

chmod -R 777 /mydata/elasticsearch/

然后我们就可以启动容器了

docker start 容器编号

image.png

然后测试访问:http://192.168.56.100:9200

image.png

看到这个效果表示安装成功!

2.Kibana安装

  Kibana的安装就相当于安装MySQL的客户端SQLYog。

下载镜像文件

docker pull kibana:7.4.2

启动容器的命令

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.100:9200 -p 5601:5601 -d kibana:7.4.2

测试访问:http://192.168.56.100:5601

image.png

如果查看日志:docker logs 容器编号

image.png

那么我们就手动的进入容器中修改ElasticSearch的服务地址

docker exec -it 容器编号 /bin/bash

进入config目录

cd config

修改kibana.yml文件中的ElasticSearch的服务地址

image.png

然后我们重启Kibana服务

image.png

看到如下界面表示安装启动成功

image.png

三、ElasticSearch入门

1._cat

_cat接口说明
GET /_cat/nodes查看所有节点
GET /_cat/health查看ES健康状况
GET /_cat/master查看主节点
GET /_cat/indices查看所有索引信息

/_cat/indices?v 查看所有的索引信息

image.png

es 中会默认提供上面的几个索引,表头的含义为:

字段名含义说明
healthgreen(集群完整) yellow(单点正常、集群不完整) red(单点不正常)
status是否能使用
index索引名
uuid索引统一编号
pri主节点几个
rep从节点几个
docs.count文档数
docs.deleted文档被删了多少
store.size整体占空间大小
pri.store.size主节点占

2.索引操作

索引就相当于我们讲的关系型数据库MySQL中的 database

2.1 创建索引

PUT /索引名

参数可选:指定分片及副本,默认分片为3,副本为2。

{
    "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 2
      }
}

image.png

2.2 查看索引信息

GET /索引名

image.png

或者,我们可以使用*来查询所有索引具体信息

image.png

2.3 删除索引

DELETE /索引名称

image.png

3.文档操作

文档相当于数据库中的表结构中的Row记录

3.1 创建文档

PUT /索引名称/类型名/编号

数据

{
   "name":"bobo"
}

image.png

提交方式描述
PUT提交的id如果不存在就是新增操作,如果存在就是更新操作,id不能为空
POST如果不提供id会自动生成一个id,如果id存在就更新,如果id不存在就新增

POST /索引名称/类型名/编号

image.png

image.png

3.2 查询文档

GET /索引/类型/id

image.png

返回字段的含义

字段含义
_index索引名称
_type类型名称
_id记录id
_version版本号
_seq_no并发控制字段,每次更新都会+1,用来实现乐观锁
_primary_term同上,主分片重新分配,如重启,就会发生变化
found找到结果
_source真正的数据内容

乐观锁: ?if_seq_no=0&if_primary_term=1

image.png

image.png

3.3 更新文档

  前面的POST和PUT添加数据的时候,如果id存在就会执行更新文档的操作,当然我们也可以通过POST方式提交,然后显示的跟上_update来实现更新

POST /索引/类型/id/_update

{
   "doc":{
       "name":"bobo666"
   }
}

这种方式来更新,只是这种方式的更新如果数据没有变化则不会操作。

image.png

如果更新的数据和文档中的数据是一样的,那么POST方式提交是不会有任何操作的

image.png

3.4 删除文档

DELETE /索引/类型/id

DELETE /索引

image.png

3.5 测试数据

_bulk批量操作,语法格式

{action:{metadata}}\n
{request body }\n
{action:{metadata}}\n
{request body }\n

案例

POST /bobo/system/_bulk
{"index":{"_id":"1"}}
{"name":"dpb"}
{"index":{"_id":"2"}}
{"name":"dpb2"}

image.png

复杂点的案例:

POST /_bulk
{"delete":{"_index":"website","_type":"blog","_id":"123"}}
{"create":{"_index":"website","_type":"blog","_id":"123"}}
{"title":"My first bolg post ..."}
{"index":{"_index":"website","_type":"blog"}}
{"title":"My second blog post ..."}
{"update":{"_index":"website","_type":"blog","_id":"123"}}
{"doc":{"title":"My updated blog post ..."}}

官方测试数据:https://github.com/elastic/elasticsearch/blob/master/docs/src/test/resources/accounts.json

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/928940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP SD (Sales Distribution)简要介绍

目录 前言 一、SD的企业结构 二、SD 模块的特性 三、SD下的子模块/组件Components 前言 SAP SD代表销售和分销,它是核心模块之一,处理从收到产品订单到将产品交付给客户的各种业务流程,以完成客户订单。SAP R/3的主要优点是与内部和外部…

leetcode503. 下一个更大元素 II 单调栈

思路: 与之前 739、1475 单调栈的问题如出一辙,唯一不同的地方就是对于遍历完之后。栈中元素的处理,之前的栈中元素因无法找到符合条件的值,直接加入vector中。而这里需要再重头遍历一下数组,找是否有符合条件的&…

UG\NX二次开发 使用录制功能录制操作记录时,如何设置默认的开发语言?

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,C\C,Qt-CSDN博客 简介: NX二次开发使用BlockUI设计对话框时,如何设置默认的代码语言? 效果: 方法: 依次打开“文件”->“实用…

CV:边缘检测的算法包含 Prewitt、Sobel、Laplacian 和 Canny。

目录 1. 边缘检测(Prewitt) 2. 边缘检测(Sobel) 3. 边缘检测(Laplacian) 3. 边缘检测(Canny) 边缘检测的算法包含 Prewitt、Sobel、Laplacian 和 Canny。 人在图像识别上具有难…

Hystrix: 服务熔断

开始搭建8001服务的熔断机制 创建子模块 同样拷一份pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schem…

Checkstyle安装、使用

Checkstyle简介 Checkstyle是SourceForge下的一个项目&#xff0c;官网&#xff1a; https://checkstyle.sourceforge.io/ 在官网有详细的说明。 Checkstyle是一个开发工具&#xff0c;可以帮助开发者自动检查java代码是否遵循编程规范&#xff0c;将开发者从枯燥繁琐的手工…

scroll-view 组件里的 scroll-into-view 属性实例

微信小程序的scroll-view组件中&#xff0c;scroll-into-view 属性可以指定滚动到指定id的位置。 <scroll-view class"content" scroll-y scroll-into-view"{{ intoIndex }}" scroll-with-animation>intoIndex 值应为某子元素id&#xff08;id不能以…

在腾讯云服务器OpenCLoudOS系统中安装svn(有图详解)

1. 安装svn yum -y install subversion 安装成功&#xff1a; 2. 创建数据根目录及仓库 mkdir -p /usr/local/svn/svnrepository 创建test仓库&#xff1a; svnadmin create /usr/local/svn/test test仓库创建成功&#xff1a; 3. 修改配置test仓库 cd /usr/local/svn/te…

JAVA坦克大战游戏v3

JAVA坦克大战游戏v3 素材 bomb_3.gif bomb_2.gif bomb_1.gif 项目结构 游戏演示 MyTankGame3.java /*** 功能:坦克游戏的5.0[]* 1.画出坦克.* 2.我的坦克可以上下左右移动* 3.可以发射子弹,子弹连发(最多5)* 4.当我的坦克击中敌人坦克时&#xff0c;敌人就消失(爆炸的效…

二叉查找树、平衡二叉树、红黑树到底怎么插入调整?不用旋转快速实现

目录 时间复杂度二叉查找树二叉查找树的插入二叉查找树的删除 平衡二叉树平衡二叉树的插入平衡二叉树的删除 红黑树红黑树的插入红黑树的删除 时间复杂度 首先二叉查找树、平衡二叉树、红黑树的时间复杂度如下所示&#xff1a; 红黑树和二叉查找树的时间复杂度是一样的&#x…

电测知识分享——雷达行业必读热点!脉冲和跳频脉冲信号的生成与解调教程来了

按照信号分类&#xff0c;雷达通常有两种基本类型&#xff1a;连续波(CW)雷达和脉冲雷达。 连续波雷达多为小型的简易雷达。在应用中有单载频连续被和调制连续波两大类。单载频连续被雷达只能测速不能测距&#xff0c;广泛用于各种测速系统&#xff0c;比如交警的测速雷达。调…

自研软件太贵、购买成品软件太死板?不怕,我这有高招

传统IT自研软件开发&#xff0c;通过编程去写代码&#xff0c;还有数据库、API、第三方基础架构等。从而造成开发周期长、难度大&#xff0c;技术人员不易于开发维护&#xff0c;因此价格及时间成本也是相对较高。后期出现了可以直接应用的成品软件&#xff0c;以及现在火热的低…

GAN原理 代码解读

模型架构 代码 数据准备 import os import time import matplotlib.pyplot as plt import numpy as np import torchvision.transforms as transforms from torch.utils.data import DataLoader from torchvision import datasets import torch.nn as nn import torch# 创建文…

docker compose iceberg 快速体验

https://iceberg.apache.org/spark-quickstart/#docker-compose port&#xff1a;8888

回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测

回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现GA-…

DPU在东数西算背景下如何赋能下一代算力基础设施 中科驭数在未来网络发展大会论道

以ChatGPT为代表的人工智能大模型的快速发展&#xff0c;对网络信息技术创新发展提出了新的挑战&#xff0c;我国东数西算重大工程也在加速布局。以确定性网络、算力网络为代表的未来网络核心技术&#xff0c;正成为决定未来经济和产业发展的关键。 8月23日&#xff0c;第七届…

学生分班查询系统的创建与使用指南

开学季&#xff0c;负责分班工作的老师们又面临一个难题&#xff1a;如何公布分班结果&#xff1f;将结果放在学校官网上可能会让很多无关人员看到&#xff0c;而不放则会导致家长们纷纷打电话来询问。那么&#xff0c;有没有一种方法可以让家长们自行查看分班结果呢&#xff1…

【SLAM】光流 - LK光流 - 金字塔分层LK光流

在SLAM的视觉里程计中&#xff0c;比较常用的就是特征点法和直接法。而直接法中&#xff0c;光流则是其中的重点内容&#xff0c;比如LSD-SLAM中就使用到了光流的方法。本文将会就光流的理论原理、公式推导进行详细的剖析&#xff0c;以帮助读者深刻地理解。 光流算法 光流是关…

每日一练 | 华为认证真题练习Day103

1、网络设备发送的IPv6报文时&#xff0c;会首先将报文长度和NTU值进行对比&#xff0c;如果大于MTU值&#xff0c;则直接丢弃。 A. 对 B. 错 2、路由器接口输出信息如下&#xff0c;则此接口可以接收哪些组播地址的数据&#xff1f; &#xff08;多选&#xff09; A. FF02::…

中国储能行业研究报告,光伏和风电领域装机量迅速增长

随着科学技术的进步&#xff0c;储能工业对我们的生活产生了深远的影响。电池技术的突破使得手机使用寿命更长&#xff0c;家庭储能系统使得能源管理更加智能和高效。人们通过对于储能的需求进行不断发展增长&#xff0c;将目光投向更环保可持续的解决问题方案。这个行业的发展…