分布式搜索引擎ElasticSearch——深入elasticSearch

news/2024/11/25 21:36:00/

分布式搜索引擎ElasticSearch——深入elasticSearch

文章目录

  • 分布式搜索引擎ElasticSearch——深入elasticSearch
    • 数据聚合
      • 聚合的分类
      • DSL实现Bucket聚合
      • DSL实现Metric聚合
      • RestAPI实现聚合
    • 自动补全
      • DSL实现自动补全查询
      • 修改酒店索引库数据结构
      • RestAPI实现自动补全查询
      • 实现酒店搜索页面输入框的自动补全
    • 数据同步
      • 数据同步思路分析
      • 利用MQ实现mysql与elasticsearch数据同步
    • elasticsearch集群
      • 搭建ES集群
      • ES集群的脑裂
      • ES集群的分布式查询

在这里插入图片描述

数据聚合

在这里插入图片描述

聚合的分类

在这里插入图片描述
在这里插入图片描述

DSL实现Bucket聚合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DSL实现Metric聚合

在这里插入图片描述

RestAPI实现聚合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自动补全

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
https://github.com/medcl/elasticsearch-analysis-pinyin
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DSL实现自动补全查询

在这里插入图片描述
Completion Suggester
在这里插入图片描述
在这里插入图片描述

修改酒店索引库数据结构

在这里插入图片描述

RestAPI实现自动补全查询

在这里插入图片描述
在这里插入图片描述

实现酒店搜索页面输入框的自动补全

在这里插入图片描述

数据同步

在这里插入图片描述

数据同步思路分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

利用MQ实现mysql与elasticsearch数据同步

在这里插入图片描述

elasticsearch集群

在这里插入图片描述
在这里插入图片描述

搭建ES集群

在这里插入图片描述
部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有4G的内存空间

首先编写一个docker-compose文件,内容如下:

version: '2.2'
services:es01:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data01:/usr/share/elasticsearch/dataports:- 9200:9200networks:- elastices02:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data02:/usr/share/elasticsearch/datanetworks:- elastices03:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticvolumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge

Run docker-compose to bring up the cluster:

docker-compose up

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

ES集群的脑裂

在这里插入图片描述
在这里插入图片描述
### ES集群的分布式存储
在这里插入图片描述
在这里插入图片描述

ES集群的分布式查询

在这里插入图片描述
在这里插入图片描述
### ES集群的故障转移
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1326194.html

相关文章

scroll-view在小程序页面里实现滚动,uniapp项目

要实现红框中的区域进行滚动,scroll-view必须写高 <template><!-- 合同-待确认 --><view class"viewport"><!-- 上 --><view class"top-box"><!-- tab --><view class"tabs"><textv-for"(ite…

离线数据仓库-关于增量和全量

数据同步策略 数据仓库同步策略概述一、数据的全量同步二、数据的增量同步三、数据同步策略的选择 数据仓库同步策略概述 应用系统所产生的业务数据是数据仓库的重要数据来源&#xff0c;我们需要每日定时从业务数据库中抽取数据&#xff0c;传输到数据仓库中&#xff0c;之后…

什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(二)

什么是技术架构?架构和框架之间的区别是什么?怎样去做好架构设计?(二)。 技术架构是对某一技术问题(需求)解决方案的结构化描述,由构成解决方案的组件结构及之间的交互关系构成。广义上的技术架构是一系列涵盖多类技术问题设计方案的统称,例如部署方案、存储方案、缓存…

Linux搭建dns主从服务器

一、实验要求 配置Dns主从服务器&#xff0c;能够实现正常的正反向解析 二、知识点 1、DNS简介 DNS&#xff08;Domain Name System&#xff09;是互联网上的一项服务&#xff0c;它作为将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便的访问互联网。…

c++QT文件IO

1、QFileDialog文件对话框 与QMessageBox一样&#xff0c;QFileDialog也继承了QDialog类&#xff0c;直接使用静态成员函数弹窗。弹出的结果&#xff08;选择文件的路径&#xff09;通过返回值获取。 1&#xff09;获取一个打开或保存的文件路径 // 获取一个打开或保存的文件路…

中移(苏州)软件技术有限公司面试问题与解答(2)—— Linux内核内存初始化的完整流程1

接前一篇文章&#xff1a;中移&#xff08;苏州&#xff09;软件技术有限公司面试问题与解答&#xff08;1&#xff09;—— 可信计算国密标准 本文参考以下文章&#xff1a; 启动期间的内存管理之初始化过程概述----Linux内存管理(九) Linux初始化 特此致谢&#xff01; 本…

Java 读取 Excel 表格—— Easy Excel 基本使用

两种读对象的方式 确定表头&#xff1a;建立对象&#xff0c;和表头形成映射关系。不确定表头&#xff1a;每一行数据映射为 Map<String, Object>&#xff0c;比如用户自己上传的表格。 两种读取模式 监听器&#xff1a;先创建监听器、在读取文件时绑定监听器。单独抽…

虚拟机下载docker

一&#xff0c;Docker简介 百科说&#xff1a;Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器上&#xff0c;也可以实现虚拟化&#xff0c;容器是完全使用沙箱机制&#xff…