1、ElasticSearch介绍
1.1、index(索引)
动词:相当于Mysql中的insert
名词:相当于Mysql中的database
1.2、type(类型)
在index(索引)中可以定义一个或多个类型
相当于Mysql中的table
1.3、Document(文档)
保存在某个索引(index)下,某种类型(type)的一个数据(Document),文档是JSON格式,
简单来说,Document就相当于在Mysql数据库中的某一张表中插入了一条数据
1.4、倒排索引机制
每次存入数据都会为其定义一个DocID,再通过ik分词器对其进行分词并记录到一张新表,为其定义单词ID,
后续检索数据时,再对这个检索词进行分词,并匹配分词表,最后返回权重最高的那条数据
举例:先向索引index中的书籍book类型中插入了如下几条Document文档数据
(在数据库中的book表中插入了如下几条数据)
ElasticSearch内部会将这几个数据进行分词,插入新表(type),并记录次数
若你现在想学java虚拟机相关知识,但是不知道具体看哪本书,则在搜索框上输入了java虚拟机,那么倒排索引则会先去分词表中找"java"和"虚拟机"两个单词,再看两个单词对应的docID,取匹配数最多的DocID,这里发现都匹配了一个2,则找到DocID为2的文档(document)“深入理解Java虚拟机”
2、安装ElasticSearch
2.1、安装
docker pull elasticsearch:7.4.2 --存储和检索数据
2.2、创建挂载目录
mkdir -p /usr/java/elasticsearch/config --挂载配置文件目录
mkdir -p /usr/java/elasticsearch/data --挂载数据文件目录
2.3、配置
echo "http.host: 0.0.0.0">>/usr/java/elasticsearch/config/elasticsearch.yml
chmod -R 777 /usr/java/elasticsearch/ --添加对文件读写权限
2.4、启动
docker run --name elasticsearch -p 9200:9200 -p 9300:9300
-e "discovery.type=single-node"
-e ES_JAVA_OPTS="-Xms64m -Xmx512m"
-v /usr/java/elasticsearch/config/elasticsearch.yml:/usr/local/docker/elasticsearch/config/elasticsearch.yml
-v /usr/java/elasticsearch/data:/usr/local/docker/elasticsearch/data
-v /usr/java/elasticsearch/plugins:/usr/local/docker/elasticsearch/plugins
-d elasticsearch:7.4.2
--name elasticsearch 启动之后的容器名
-p 9200:9200 http访问ElasticSearch API的端口
-p 9300:9300 用于搭建集群之后节点互相调用的端口
-v /usr/java/elasticsearch/... 配置挂载文件对外访问的目录地址
-d elasticsearch:7.4.2 对应版本
2.5、开机自启
docker update elasticsearch --restart=always
2.6、访问
127.0.0.1:9200 --服务器ip:9200
显示如下即启动成功
若访问失败,可去关闭防火墙或开放端口
3、安装Kibana
3.1、介绍
Kibana就是ElasticSearch的一个可视化界面,也可以直接使用Postman调用接口测试
3.2、安装
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://127.0.0.1:9200 -p 5601:5601 -d kibana:7.4.2
--name kibana 容器名
127.0.0.1:9200 自己的服务器ip和端口
-p 5601:5601 http访问Kibana的端口
-d kibana:7.4.2 Kibana版本(需要和es保持一致)
3.3、访问
127.0.0.1:5601 --服务器ip:端口
访问页面显示如下即启动成功,若不成功一样去开放端口即可
3.4、基础接口
1、查看所有节点信息:118.89.18.36:9200/_cat/nodes
2、查看健康信息状况:118.89.18.36:9200/_cat/health
3、查看主节点:118.89.18.36:9200/_cat/master
4、查看所有索引:118.89.18.36:9200/_cat/indices