Docker中的ElasticSearch

官方文档【英文】:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
官方文档【中文】:https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html
社区中文:https://doc.codingdict.com/elasticsearch/0/

一、基本概念

1、 Index(索引)

动词,相当于MySQL中的Insert
名词,相当于MySQL中的Database

2、 Type(类型)

Index可被定义多个类型,类似于MySQL中的Table,每一种类型的数据放在一起

3、 Document(文档)

保存在某个索引下,某种类型的一个数据,文档是JSON格式
Document就像MySQL某Table中的内容

在这里插入图片描述

倒排索引机制

在这里插入图片描述

二、Docker中安装ElasticSearch

1、下载镜像文件

docker pull elasticsearch:7.4.2 #存储和检索数据
docker pull kibana:7.4.2 #可视化检索数据

2、创建实例

1、ElasticSearch

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

注意:
-e ES_JAVA_OPTS=“-Xms64m -Xms 128m” \ 测试环境下,设置ES初始内存和最大内存,否则导致占用内存过大启动不了ES

2、Kibana

docker run --name kibana \
-e ELASTICSEARCH_URL=http://112.124.32.136:9200 \
-p 5601:5601 \
-d kibana:7.4.2

报错:
docker 中 启动Kibana 时遇到no living connections ,unable revive connection :http://elasticsearch

# 进入kibana内部
docker exec -it kibana /bin/bash

vi /config/kibana.yml
# 修改 http://elasticsearch:9200 为 http://ip地址:9200
# Ctrl + p + q 退出容器
# 重启容器
docker restart kibana

开机自启

docker update 容器ID --restart=always

ik分词器

进入es容器内部plugins目录

docker exec -it 容器ID /bin/bash

下载

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/downloads/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

解压

unzip 文件

mv elasticsearch/ik

cd …/

elasticsearch-plugin list: 即可列出系统分词器

自定义词汇

进入nginx/html

创建es/fenci.txt,键入自定义词汇

打开elasticsearch/plugins/ik/config/IKanalyzer.cfg.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfXsuZQ8-1646359338174)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1645778947140.png)]

修改远程扩展字典为http://ip/es/fenci.txt

重启elasticsearch:docker restart elasticsearch

三、应用

查看节点信息

GET http://ip:9200/_cat/nodes

{
    "doc": {
        //数据
    }
}

查看索引信息

GET http://ip:9200/_cat/indices

获取文档信息

GET http://ip:9200/索引/类型/ID

保存文档信息

携带ID

PUT http://ip:9200/索引/类型/ID
特点: 每次操作都会生效,若存在ID则更新,否则新建

{
 //数据
}

不携带ID

POST http://ip:9200/索引/类型
特点: 新建,ID为随机字符串

{
   //数据
}

明确更新

POST http://ip:9200/索引/类型/ID/_update
特点: 先比较原数据,若相同则不生效

{
    "doc": {
        //数据
    }
}

https://www.elastic.co/guide/en/elastic-stack/index.html

ElasticSearch-Rest-Client

官方RestClient,封装了ES操作,API层次分明上手简单

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZRe0mo1X-1646359338175)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1645842098402.png)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值