【笔记于学习尚硅谷课程所作】
1、 ElasticSearch 简介
1.1 介绍
全文搜索属于最常见的需求,开源的Elasticsearch 是目前全文搜索引擎的首选。
- Index索引:相当于mysql的数据库
- Type类型:相当于数据库的表
- Document文档:相当于一条记录
索引机制:倒排索引机制
1.2 去掉type
ElasticSearch7-去掉type概念 :elasticsearch是基于Lucene开发的搜索引擎,而ES中不同type下名称相同的filed最终在Lucene中的处理方式是一样的。
两个不同type下的两个user_name,在ES同一个索引下其实被认为是同一个filed,你必须在两个不同的type中定义相同的filed映射。否则,不同type中的相同字段名称就会在处理中出现冲突的情况,导致Lucene处理效率下降。去掉type就是为了提高ES处理数据的效率。
Elasticsearch 8.x 不再支持URL中的type参数
解决:将索引从多类型迁移到单类型,每种类型文档一个独立索引
2、下载
1.Docker安装ElasticSearch
#下载ElasticSearch,存储和检索数据
docker pull elasticsearch:7.4.2
#下载kibana,可视化检索数据
docker pull kibana:7.4.2
# 在mydata文件夹下创建es的config文件夹,将docker中es的配置挂载在外部,当我们在linux虚拟机中修改es的配置文件时,就会同时修改docker中的es的配置
mkdir -p /mydata/elasticsearch/config
#在mydata文件夹下创建es的data文件夹
mkdir -p /mydata/elasticsearch/data
# [http.host:0.0.0.0]允许任何远程机器访问es,并将其写入es的配置文件中
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
# 保证权限问题
chmod -R 777 /mydata/elasticsearch/
#创建容器
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" -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
# docker run --name elasticsearch 创建一个es容器并起一个名字;
# -p 9200:9200 将linux的9200端口映射到docker容器的9200端口,用来给es发送http请求
# -p 9300:9300 9300是es在分布式集群状态下节点之间的通信端口 \ 换行符
# -e 指定一个参数,当前es以单节点模式运行
# *注意,ES_JAVA_OPTS非常重要,指定开发时es运行时的最小和最大内存占用为64M和512M,否则就会占用全部可用内存
# -v 挂载命令,将虚拟机中的路径和docker中的路径进行关联
# -d 后台启动服务
安装完成后在浏览器地址栏访问192.168.196.128:9200
2.Docker安装Kibana
Kibana是ElasticSearch的可视化操作工具,与MySQL和MySQL Workbench关系一样
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.196.128:9200 -p 5601:5601 -d kibana:7.4.2
安装完成后在浏览器地址栏访问192.168.196.128:5601/