欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

程序员文章站 2024-01-07 21:11:22
...

docker Elasticsearch 环境搭建(带ik分词)

1. dockerdesktop 安装

下载Docker Desktop for windows

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

双击exe安装

配置docker desktop参数。

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

文件共享
dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

配置加速镜像源

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

2. docker-compose安装elasticsearch

2.1 pull 镜像

选择elasticsearch版本6.8.4

docker pull elasticsearch:6.8.4

下图已经拉取好了image

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

拉取kibana镜像

docker pull kibana:6.8.4

elasticsearch与kibana版本对应关系参考以下链接

https://www.cnblogs.com/liubaihui/p/11725832.html

2.2 创建elasticsearch挂载目录

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

  • config目录:挂载elasticsearch的配置文件elasticsearch.yml
  • data目录:挂载数据目录
  • plugins目录:挂在elasticsearch插件目录
  • kibana目录:kibana 的目录

创建elasticsearch的配置文件

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

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分词器

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

从release中找到对应版本,下载elasticsearch-analysis-ik-6.8.4.zip

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

下载好压缩包后把文件解压,将解压后的文件放到elasticsearch中的plugins文件夹中

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

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

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

在浏览器中输入

http://localhost:9200/

得到下图所示即表示安装成功

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

3. 安装elasticsearch-head

在谷歌扩展商店搜索elasticsearch-head,安装扩展插件即可使用

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

4. 测试

4.1 ik分词器测试

在e’lasticsearch-head中的扶额和查询中输入以下字段

http栏:http://localhost:9200/_analyze/

json栏:

{
    "analyzer":"ik_max_word",
    "text":"电子科技大学"
}

出现下图即表示ik分词器安装成功

dockerdesktop下elasticsearch单节点环境搭建(带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,也可以为5
number_of_replicas: 备份的数量为0,由于就1台服务器因此备份数量为0。

并且number_of_replicas备份数量只能为0,如果,不指定参数,按照默认参数配置会导致kibana报错,造成进不去kibana。

创建成功会出现以下结果:

{
    "acknowledged" : true,
    "shards_acknowledged" : true,
    "index" : "emr"
}

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

查看刚刚创建的索引emr

GET /emr/_settings

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

4.2.2 在索引下添加文档

PUT /emr/patient/1
{
    "first_name": "Jane",
    "last_name": "Smith",
    "age": 32,
    "disease": "aki",
    "zhusu":["blood pressure increased"]
}

添加成功

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

增加成功后,点击Management > index Management 查看索引状态
dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

再点击index patterns > 在上面的index pattern 输入emr ,再点击next step,这时我们已经可以看到刚刚创建的索引已经显示出来了
dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

再点击Discover 查看具体索引信息

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

4.2.3 查看文档

输入GET /emr/patient/1

得到结果:
dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

查看部分信息

GET /emr/patient/1?_source=age,disease
dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

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
dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

修改文档中部分信息:

POST /emr/patient/3/_update
{
  "doc":{
      "age":18
  }
}

修改完之后,查看修改完后的结果,发现age变成了18

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

4.2.5 删除文档

DELETE /emr/patient/2

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

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
dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

PUT用于更新操作,POST用于新增操作比较合适。但是POST方式会造成id随机,不能自己指定。

5. elasticsearch-head

es-head和kibana类似,但是操作稍微简单一点

查看es节点和索引信息

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

查看添加的文档信息

dockerdesktop下elasticsearch单节点环境搭建(带ik分词)

https://www.cnblogs.com/JimShi/p/11242657.html
https://blog.csdn.net/qq_24434671/article/details/88574213