dockerdesktop下elasticsearch单节点环境搭建(带ik分词)
docker Elasticsearch 环境搭建(带ik分词)
1. dockerdesktop 安装
双击exe安装
配置docker desktop参数。
文件共享
配置加速镜像源
2. docker-compose安装elasticsearch
2.1 pull 镜像
选择elasticsearch版本6.8.4
docker pull elasticsearch:6.8.4
下图已经拉取好了image
拉取kibana镜像
docker pull kibana:6.8.4
elasticsearch与kibana版本对应关系参考以下链接
https://www.cnblogs.com/liubaihui/p/11725832.html
2.2 创建elasticsearch挂载目录
- config目录:挂载elasticsearch的配置文件elasticsearch.yml
- data目录:挂载数据目录
- plugins目录:挂在elasticsearch插件目录
- kibana目录:kibana 的目录
创建elasticsearch的配置文件
elasticsearch.yml文件内容:
cluster.name: elasticsearch-cluster #集群名
node.name: es-node1 #节点名
network.host: 0.0.0.0 #配置外网访问
discovery.zen.minimum_master_nodes: 1 #由于只有一个节点所以discovery.zen.minimum_master_nodes参数是1
network.publish_host: localhost
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
2.3 ik分词器的安装
从github上的ik分词器主页下载对应版本的ik分词器
从release中找到对应版本,下载elasticsearch-analysis-ik-6.8.4.zip
下载好压缩包后把文件解压,将解压后的文件放到elasticsearch中的plugins文件夹中
2.4 创建docker-compose.yml文件
version: '3'
services:
elasticsearch:
image: elasticsearch:6.8.4
container_name: elasticsearch
restart: always
environment:
- TZ=Asia/Shanghai
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- "./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
- "./plugins:/usr/share/elasticsearch/plugins"
- "./data:/usr/share/elasticsearch/data"
ulimits:
memlock:
soft: -1
hard: -1
ports:
# 端口映射
- 9200:9200
- 9300:9300
networks:
# 网段名称, 需要相互关联的容器必须处于同一个network中
- somenetwork
kibana:
image: kibana:6.8.4
container_name: kibana
restart: always
environment:
- TZ='Asia/Shanghai'
# - server.name=kibana
# elasticSearch是容器名称, 这里, 集群要保证主节点对应的这个
- elasticsearch.hosts=http://elasticsearch:9200
- i18n.locale=zh-CN
volumes:
- "./kibana/config/:/share/kibana/config"
ports:
- 5601:5601
networks:
- somenetwork
networks:
somenetwork:
# driver: bridge```
在docker-compose.yml同级目录打开cmd,输入
docker-compose up
在浏览器中输入
http://localhost:9200/
得到下图所示即表示安装成功
3. 安装elasticsearch-head
在谷歌扩展商店搜索elasticsearch-head,安装扩展插件即可使用
4. 测试
4.1 ik分词器测试
在e’lasticsearch-head中的扶额和查询中输入以下字段
http栏:http://localhost:9200/_analyze/
json栏:
{
"analyzer":"ik_max_word",
"text":"电子科技大学"
}
出现下图即表示ik分词器安装成功
4.2 elasticsearch增删改查
4.2.1 创建索引
浏览器中输入
http://localhost:5601/
进入kibana管理界面,点击左侧Dev Tools 进入命令行界面,开始用命令行创建索引
输入下面的代码创建emr索引,
PUT /emr/
{
"settings":{
"index":{
"number_of_shards":1,
"number_of_replicas":0
}
}
}
索引的名称为emr
number_of_shards
:分片的数量为1,分片的数量一旦确定了就不能修改,这里可以为1,也可以为5number_of_replicas
: 备份的数量为0,由于就1台服务器因此备份数量为0。
并且number_of_replicas
备份数量只能为0,如果,不指定参数,按照默认参数配置会导致kibana报错,造成进不去kibana。
创建成功会出现以下结果:
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "emr"
}
查看刚刚创建的索引emr
GET /emr/_settings
4.2.2 在索引下添加文档
PUT /emr/patient/1
{
"first_name": "Jane",
"last_name": "Smith",
"age": 32,
"disease": "aki",
"zhusu":["blood pressure increased"]
}
添加成功
增加成功后,点击Management > index Management 查看索引状态
再点击index patterns > 在上面的index pattern 输入emr ,再点击next step,这时我们已经可以看到刚刚创建的索引已经显示出来了
再点击Discover 查看具体索引信息
4.2.3 查看文档
输入GET /emr/patient/1
得到结果:
查看部分信息
GET /emr/patient/1?_source=age,disease
4.2.4 修改文档
PUT /emr/patient/1
{
"first_name": "Jane",
"last_name": "Smith",
"age": 33,
"disease": "acute kidney injury",
"zhusu":["blood pressure increased"]
}
修改完后result字段就变成了updated
修改文档中部分信息:
POST /emr/patient/3/_update
{
"doc":{
"age":18
}
}
修改完之后,查看修改完后的结果,发现age变成了18
4.2.5 删除文档
DELETE /emr/patient/2
4.2.6 删除索引
先创建一个新索引emr1
PUT /emr1/
{
"settings":{
"index":{
"number_of_shards":1,
"number_of_replicas":0
}
}
}
再添加一条数据
PUT /emr1/patient1/1
{
"first_name": "Jane",
"last_name": "Smith",
"age": 33,
"disease": "acute kidney injury",
"zhusu":["blood pressure increased"]
}
然后输入DELETE emr1
PUT用于更新操作,POST用于新增操作比较合适。但是POST方式会造成id随机,不能自己指定。
5. elasticsearch-head
es-head和kibana类似,但是操作稍微简单一点
查看es节点和索引信息
查看添加的文档信息
https://www.cnblogs.com/JimShi/p/11242657.html
https://blog.csdn.net/qq_24434671/article/details/88574213