微服务Ⅳ ElasticSerach

Posted \Qinsiyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务Ⅳ ElasticSerach相关的知识,希望对你有一定的参考价值。

目录

ES简介

是一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控

  • 易扩展
  • 高性能(倒排索引)
  • 支持分布式,可水平扩展
  • 提供Restful接口,可被任何语言调用

ELK:ES的核心技术栈

Lucene:搜索引擎类库,提供搜索引擎的核心API

倒排索引

正向索引:基于文档id创建索引,查询时先找文档判断是否包含词条;

模糊查询,需要逐个扫描,最终返回结果集

倒排索引

先对内容分词,对词条创建索引,并记录含有该词条的文档id;查询时先根据词条查询文档id,然后返回文档;还可以根据匹配程度排序

ES是面向文档存储的,文档数据会被序列化为Json格式存储

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

mysql与ES

结构对比

各司其职

搭建

安装ES

  1. 因为我们还需要部署 kibana 容器,需要让 es 和 kibana 容器互联。这里先创建一个网络:

    docker network create es-net 
    
  2. 安装ES

    docker run -d \\
    --name es \\
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \\
    -e "discovery.type=single-node" \\
    -v es-data:/usr/share/elasticsearch/data \\
    -v es-plugins:/usr/share/elasticsearch/plugins \\
    --privileged \\
    --network es-net \\
    -p 9200:9200 \\
    -p 9300:9300 \\
    elasticsearch:7.12.1
    

命令解释:

  • -e “cluster.name=es-docker-cluster”:设置集群名称
  • -e “http.host=0.0.0.0”:监听的地址,可以外网访问
  • -e “ES_JAVA_OPTS=-Xms512m -Xmx512m”:内存大小
  • -e “discovery.type=single-node”:非集群模式
  • -v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
  • -v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
  • -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
  • –privileged:授予逻辑卷访问权
  • –network es-net :加入一个名为 es-net 的网络中
  • -p 9200:9200:端口映射配置

访问地址:http://192.168.32.129:9200 即可看到 elasticsearch 的响应结果

安装kibana

kibana 可以给我们提供一个 elasticsearch 的可视化界面,便于我们学习命令

docker run -d \\
--name kibana \\
-e ELASTICSEARCH_HOSTS=http://es:9200 \\
--network=es-net \\
-p 5601:5601  \\
kibana:7.12.1
  • –network es-net :加入一个名为 es-net 的网络中,与 elasticsearch 在同一个网络中
  • -e ELASTICSEARCH_HOSTS=http://es:9200":设置 elasticsearch 的地址,因为 kibana 已经与 elasticsearch 在一个网络,因此可以用容器名直接访问 elasticsearch
  • -p 5601:5601:端口映射配置

控制面板:http://192.168.32.129:5601/app/dev_tools#/console

安装IK分词器

由于国内访问 GitHub 较慢,我们选择离线模式安装。

安装插件需要知道 elasticsearch 的 plugins 目录位置,而我们用了数据卷挂载,因此需要查看 elasticsearch 的数据卷目录,通过下面命令查看

docker volume inspect es-plugins

未完待续

以上是关于微服务Ⅳ ElasticSerach的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSerach 6.x的安装及配置

火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0 (Ⅳ)

Python CGI编程Ⅳ

Elasticserach学习笔记-01基础概念

在centos7.2上安装elasticserach7.3.2

K8S实践Ⅳ(Service)