ES学习笔记

认识

安装es和kibana

首先下载es.tar和kibana.tar包导入进去然后再加载镜像:

1
docker laod -i es.tar
1
docker load -i kibana.tar

然后创建它们的网络,将他们关联在一起:

1
docker network create es-net

然后再分别运行es 和 kibana:

1
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
1
docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601 kibana:7.12.1

然后再进入5601端口,进去后点击不添加数据,进入dev tools可以进行测试

安装IK分词器

首先找到上传文件的位置:

1
docker volume inspect es-plugins

然后再上传ik文件夹,上传后再重启docker restart es,接着就可以去测试分词器了:

1
2
3
4
5
POST /_analyze
{
"text": "我的名字叫何平安,我爱java",
"analyzer": "ik_smark"
}

如果出现500错误,不要直接用黑马的那个ik文件夹,吧压缩包解压用自己的

查看日志:

1
docker logs -f es

按照图片里的做法就是加个ext.dic文件,在里面编写你的词语,记得用UTF-8编码

索引库

与mysql的对比:

type类型

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
PUT /user
{
"mappings": {
"properties": {
"name": {
"type": "object",
"properties": {
"fistName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
},
"info": {
"type": "text",
"analyzer": "ik_smart"
},
"email":{
"type": "keyword"
, "analyzer": "ik_smart"
}
}
}
}

添加好后就可以 GET /索引库名称查询出来或者Delete删除

修改是有一些区别的:

文档Crud

1
2
3
4
5
6
7
8
9
POST /user/_doc/1
{
"email": "1973016127@qq.com",
"info": "浩原科技创始人何平安",
"name": {
"firstName": "何",
"lastName": "平安"
}
}

获取信息:

1
GET /user/_doc/1

删除:

1
DELETE /user/_doc/1

修改

1
2
3
4
5
6
7
8
9
PUT /user/_doc/1
{
"email": "1973016127@qq.com",
"info": "浩原科技创始人是何平安",
"name": {
"firstName": "何",
"lastName": "平安"
}
}
1
2
3
4
5
6
POST /user/_update/1
{
"doc":{
"email": "1641436566@qq.com"
}
}

JavaRestClient

准备白雪!!其实也没白雪,就像你学mybatis-plus之前就要先学mybatis和mysql语句~