Elasticsearch初探

news2024/11/16 9:25:59

ElasticSearch

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。
Elasticsearch结合Kibana、Logstash、Beats,也就是elastic
stack(ELK)。被广泛应用在日志分析、实时监控(CPU、Memory、Program)等领域。
elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。
Kibana 负责数据可视化
Elasticsearch 负责存储、计算、搜索数据
Logstash、Beats负责数据抓取

elasticsearch的底层实现基于lucene,lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发
官网:https://lucene.apache.org
在这里插入图片描述

Lucene
优点:易扩展、高性能(基于倒排索引数据结构)
缺点:限于Java语言、学习曲线陡峭、不支持水平扩展

elasticsearch
2004年Shay Banon基于Lucene开发了Compass
2010年Shay Banon重写了Compass,取名Elasticsearch
相比lucene其具备支持分布式、可水平扩展、提供Restful接口、可被任意语言调用的优势
ES官网地址:https://www.elastic.co/cn/
在这里插入图片描述

正向索引与倒排索引

elasticsearch采用倒排索引:

  • 文档(document):每条数据就是一个文档
  • 词条(term):文档按照语义划分的词语

正向索引

idtitleprice
1小米手机3499
2华为手机4999
3华为小米充电器49
4小米手环299

倒排索引

词条(term)文档id
小米1, 3, 4
手机1,2
华为2,3
充电器3
手环4

文档

elasticsearch是面向文档存储的,可以是数据库中的一条商品数据,一个订单信息。
文档数据会被序列化成json格式

索引

  • 索引(index):相同类型的文档的集合
  • 映射(Mapping):索引中文档的字段约束信息,类似表的结构约束

商品索引

{
"id":1,
"title":"小米手机",
"price":3499
}

{
"id":2,
"title":"华为手机",
"price":4999
}

{
"id":3,
"title":"三星手机",
"price":3999
}

用户索引

{
"id":101,
"name":"张三",
"age":21
}

{
"id":102,
"name":"李四",
"age":24
}

{
"id":103,
"name":"王五",
"age":18
}

订单索引

{
"id":10,
"userId":101,
"goodsId":1,
"totalFee":294
}

{
"id":11,
"userId":102,
"goodsId":2,
"totalFee":328
}

MySQL与ES概念的对比

MySQLElasticsearch说明
TableIndex索引(Index),是文档的集合、类似数据库的表(table)
RawDocument文档(Document),是一条条的数据、类似数据库中的行(Row),文档都是json格式
ColumnField字段(Field),是json文档中的字段,类似数据库中的列(Column)
SchemaMappingMapping(映射),是索引中文档的约束,例如字段类型的约束,类似数据库的表结构(Schema)
SQLDSLDSL是Elasticsearch提供的json风格的请求语句,用于操作elasticsearch,实现CRUD

架构

MySQL:擅长事务类型操作,可以确保数据的安全和一致性
Elasticsearch:擅长海量数据的搜索、分析、计算
二者是互补,而非替代的关系
在这里插入图片描述

安装elasticsearch、kibana

elasticsearch 7.6.1:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-6-1

kibana 7.6.1:https://www.elastic.co/cn/downloads/past-releases/kibana-7-6-1

jdk:https://www.oracle.com/java/technologies/
7.x版本es、kibana无需自行安装jdk

下载并解压es、kibana到固定路径,并将其bin目录加入环境变量

修改config/kibana.yml配置文件,去掉elasticsearch.hosts前的注释

elasticsearch.hosts: ["http://localhost:9200"]

打开命令行,输入elasticsearch.bat启动es
新建窗口,输入kibana.bat启动kibana

es的默认端口是9200,其启动成功界面如下图所示
在这里插入图片描述
kibana默认端口是5601,其启动成功界面入下图所示
在这里插入图片描述
打开Dev Tools,输入GET /,查看ES信息
在这里插入图片描述

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

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

相关文章

【​区块链】相关专业名词术语

区块链 区块链是一个共享数据库,存储于其中的数据或信息,具有不可伪造、全程留痕、可以追溯、公开透明和集体维护等特征。可以把区块链理解为一个共享的、不可更改的电子账本,能够在网络中记录交易和跟踪资产。这里的资产可以是有形的&#…

mount.nfs: access denied by server while mounting

问题及截图? 客户端挂载nfs共享目录的时候提示如下: mount.nfs: access denied by server while mounting 192.168.44.10:/xxx 问题原因有两方面: 一:权限问题 服务器端的共享目录没有给足相应的权限导致,导致挂载失…

如何做mysql调优?绝命7招,让慢SQL调优100倍

前言: 在40岁老架构师尼恩的读者社区(50)中,很多小伙伴拿不到offer,或者拿不到好的offer。 尼恩经常给大家 优化项目,优化简历,挖掘技术亮点。在指导简历的过程中, Java 调优是一项…

HiveSQL在使用聚合类函数的时候性能分析和优化详解

文章目录 概述1.仅在Reduce阶段聚合的SQL执行逻辑2.在map和reduce阶段聚合的SQL逻辑 概述 前文我们写过简单SQL的性能分析和解读,简单SQL被归类为select-from-where型SQL语句,其主要特点是只有map阶段的数据处理,相当于直接从hive中取数出来…

C++模板和模板的特化,模板的扩展和智能指针------(14)

模板 概念 模板的作用是实现类型通用,降低代码的冗余度 模板可以为一种算法定义不同类型的版本 实现机制: 复制代码使用类型参数突破类型的限制,丧失一定的类型安全 模板需要实例化才能使用,实例化由编译器完成 模板的分类 …

对比学习初认识

这篇文章我们通过SimCLR模型来对对比学习技术有一个认知。 1.什么是对比学习系统 根据上面这个图,来介绍下怎么做一个抽象的对比学习系统。以一个图像为例子,通过自动构造正例或负例,形成图片的两个view,通过encoder把它们编码&a…

第十届中医药健康文化节:御医传人龚洪海强调心血管疾病中医治疗"治未病"的重要性

在第十届中医药健康文化节上,备受瞩目的中医世家龚洪海医生强调了中医对心血管疾病的有效治疗,并提出了更为重要的概念——"治未病"。这一观念的传达不仅对预防常见病和多发病有益,同时在重大疑难疾病的防治中发挥着关键作用&#…

Java - OkHttp

使用方法: 在postman中请求接口通过,可复制右侧代码使用,可用于webservice等接口

MySQL数据库事务和存储引擎

MySQL数据库事务和存储引擎 一、mysql事务1、事务的概念2、事务的ACID特点2.1 原子性2.2 一致性2.3 隔离性2.4 持久性 3、两个事务之间的影响3.1 脏读(读取未提交数据)3.2 不可重复度(前后多次读取,数据内容不一致)3.3…

【Vue+Django】Training Management Platform分页功能 - 20230621

需求描述 分页显示数据,避免造成服务器宕机。 Django:根据pageNum返回数据切片 Views.py写入业务逻辑 # 数据接口:暴露trs_training_and_test_record数据 def api_trs_training_and_test_record(request,myDateS,myDateE,mySystem,catego…

SpringCloud Alibaba入门4之nacos注册中心管理

我们在上一章的基础上进行学习。https://blog.csdn.net/qinxun2008081/article/details/131330451 什么是注册中心?它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址&…

Java开发必看,Spring增强性能与现代应用支持

出品 | CSDN 云计算 开发界经典话题之一,就是语言之争。除了每月的开发语言排行榜上几大王牌语言在榜单前列上上下下,在 CSDN 连续几年的年度开发者调研《中国开发者调查报告》中,Java 一直被评为开发者使用占比最高的语言,而 Spr…

银河麒麟V10 wireguard 编译

系统信息 操作系统信息: 我这里使用的操作系统是 银河麒麟V10,CPU为飞腾 ARM64 根据wireguard 的编译指南:https://www.wireguard.com/compilation/ 安装 编译安装内核 注意:5.6 以上内核不需要编译安装,已经集…

【数据库五】MySQL高级SQL语句

MySQL高级SQL语句 1.MySQL进阶查询1.1 select1.2 distinct1.3 where1.4 and or1.5 in1.6 between1.7 通配符1.8 like 2.MySQL数据库函数2.1 数学函数2.2 聚合函数2.3 字符串函数 3.查询函数3.1 order by3.2 group by3.3 sql语句执行顺序3.4 having3.5 别名(字段别名…

【剑指offer专项突破版】队列篇——“C“

文章目录 前言一、滑动窗口的平均值题目分析思路分析对列代码题解代码 二、最近请求次数题目分析思路分析队列代码题解代码 三、往完全二叉树添加节点题目分析思路分析队列与接口代码题解代码 四、二叉树每层的最大值题目分析思路分析队列代码题解代码 五、二叉树最底层最左边的…

学习 WooCommerce REST API

主要学习这个技术文档即可 WooCommerce REST API 技术文档 WooCommerce 官方文档 github : woocommerce/woocommerce 以下设置以及测试代码,都来自 WooCommerce REST API 技术文档 设置 REST API 设置 – 固定链接 (Settings > Permalinks.&#…

MySQL - 第4节 - MySQL数据类型

目录 1.数据类型的作用 2.数据类型分类 3.数值类型 3.1.tinyint类型 3.2.bit类型 3.3.float类型 3.4.decimal类型 4.字符串类型 4.1.char类型 4.2.varchar类型 4.3.char和varchar比较 5.时间日期类型 6.enum和set类型 6.1.enum和set类型 6.2.调查表案例 6.3.通…

二手车交易APP开发功能有哪些?

二手车交易APP开发功能有哪些? 1、车辆估价:在选购二手车时,了解车辆的市场价值是非常重要的。为了保证客户能够准确估计车辆的价值,二手车APP软件开发应该具备车辆估价功能。用户可以通过APP输入车辆的基本信息&#xff0…

离线(内网)主机创建python项目运行环境

一、创建requirements.txt文件 文件中是python项目需要的依赖和版本号 二、把依赖下载到本地 准备一个能联网的pc,把依赖下载到本地 pip download -d ./venv -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/这个命令会把依赖下载到venv文件夹…

指数全线收跌,上证跌破3200点,仅4137只个股下跌!

如题,端午假期前一天,A股指数全线收跌,上证指数跌破3200点,仅4137只个股下跌!就问你服不服? 不要急,不要慌,我们来细细分析。 过去一两周,上证指数以震荡为主&#xff…