安装ElasticSearch

安装ElasticSearch

ElasticSearch以下项目简称(ES),平时所说的ES就是ElasticSearch

此教程是使用docker部署!!!

单点部署ES

创建网络

因为ES还需要部署其它东西所以容器之间需要网络互联,首先创建一个网络。

docker network create es-net

加载镜像

这里的ES是使用7.12.1版本。

  • -Xms512m是内存大小,正式环境不建议这么大,因为es还是很消耗内存的,所以尽可能大些。
    • 考虑到虚拟机等电脑内存所以暂时小点反正也是一个人用!!!
  • discovery.type=single-node模式是单点访问
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 \
    --restart=always \
elasticsearch:7.12.1

在浏览器中输入http://192.168.1.4:9200/

在这里插入图片描述

但是光这个还不够因为还需要调试工具进行调试等操作,所以还需要安装Dev Tools(kibana)

安装kibana

kibana可以给我们提供一个ES界面,方便学习。

安装

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

访问地址:http://192.168.1.4:5601/。在控制台中发送,会发现和刚刚在浏览器访问:http://192.168.1.4:9200/是一样的结果。

# 测试发送
GET /

在这里插入图片描述

分词问题演示

在正常使用中会发现,ES的分词对中文支持不是很好,是逐个字分的,这时不希望的,并不会有词语联想。

下面将介绍如何安装IK分词器。

# 测试分词问题
POST /_analyze
{
  "text": "测试分词问题",
  "analyzer": "chinese"
}

在这里插入图片描述

安装IK分词器

IK分词器是一个插件,所以安装在插件目录下。

在线安装

进入镜像内部。

# 进入容器内部
docker exec -it elasticsearch bash

在线下载并安装,版本是7.12.1

# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

安装完成后进行重启ES。

docker restart es

离线安装

查看数据卷目录。

docker volume inspect es-plugins

在这里插入图片描述

说明plugins目录被挂载到了:/var/lib/docker/volumes/es-plugins/_data

之后进入到这个目录中,将下载好的zip进行解压重命名为ik,将离线的安装包放入到这个目录中即可。

7.12.1版本下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

也可以访问:https://github.com/infinilabs/analysis-ik/releases,查看更多版本。

cd /var/lib/docker/volumes/es-plugins/_data

在这里插入图片描述

安装完成后进行重启ES。

docker restart es

安装完成测试

没有安装之间的。

在这里插入图片描述

安装后的。

在这里插入图片描述

扩展词词典

进入到之间插件所在目录的ik分词器目录中找到Config目录。

在这里插入图片描述

编辑这个文件。新建文件ext.dic

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典 -->
	<entry key="ext_dict">ext.dic</entry>
	<!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

在这里插入图片描述

编辑ext.dic

添加你需要的词库。

在这里插入图片描述

重启elasticsearch

docker restart es

测试分词效果。

# 测试自定义分词库
GET /_analyze
{
  "analyzer": "ik_max_word",
  "text": "小兔子真可爱,可爱的小兔子"
}

在这里插入图片描述

停用词词典

默认的停用词词典为stopword.dic,可以自己查看下里面内容。

在这里插入图片描述

新建文件bunny_stopword.dic,自定义停用词词库,编辑这个文件。

在这里插入图片描述

# 测试自定义分停用词词库
GET /_analyze
{
  "analyzer": "ik_max_word",
  "text": "我是bunny,搜不到"
}
# 重启服务
docker restart es
docker restart kibana

在这里插入图片描述

部署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

执行安装。

docker-compose up

相关推荐

  1. Elasticsearch安装

    2024-04-01 09:46:05       11 阅读
  2. Elasticsearch:(二)1.安装Elasticsearch

    2024-04-01 09:46:05       15 阅读
  3. docker安装elasticsearch

    2024-04-01 09:46:05       45 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-01 09:46:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-01 09:46:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-01 09:46:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-01 09:46:05       20 阅读

热门阅读

  1. C++经典面试题目(十五)

    2024-04-01 09:46:05       16 阅读
  2. 微信小程序(3.3.5) 对实时帧数据调速

    2024-04-01 09:46:05       16 阅读
  3. 微信小程序——wxss和css的区别

    2024-04-01 09:46:05       19 阅读
  4. uView内置样式

    2024-04-01 09:46:05       15 阅读
  5. Github2024-03-31 开源项目日报 Top10

    2024-04-01 09:46:05       17 阅读
  6. GitHub常用命令

    2024-04-01 09:46:05       16 阅读
  7. 量化交易入门(三十五)回测框架backtrader-Strategy

    2024-04-01 09:46:05       19 阅读
  8. three.js昼夜切换,白天黑夜的实现(含源码)

    2024-04-01 09:46:05       17 阅读
  9. python_2

    python_2

    2024-04-01 09:46:05      18 阅读
  10. 20.helm安装最新kubernetes dashboard

    2024-04-01 09:46:05       15 阅读