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

分布式搜索引擎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.1
    container_name: es01
    environment:
      - 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: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
    container_name: es02
    environment:
      - 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: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
    container_name: es03
    environment:
      - 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: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

Run docker-compose to bring up the cluster:

docker-compose up

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

在这里插入图片描述

ES集群的脑裂

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

ES集群的分布式查询

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