docker环境下安装elasticsearch

1.下载镜像

docker pull elasticsearch:7.4.2

2.创建实例

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-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

如果启动实例失败,修改目录权限
chmod -R 777 /mydata/elasticsearch

2.1打开浏览器访问

http://192.168.73.101:9200

2.2出现以下界面则证明成功

在这里插入图片描述

3.安装ik分词器

ik分词器的版本需要和es的版本一致

7.4.2版本下载地址
所有版本的下载地址
网速慢的可以挂个梯子,下载后缀为.zip的文件
在这里插入图片描述

3.1上传文件到虚拟机

将文件上传到/mydata/elasticsearch/plugins目录下,我们在创建容器时挂载了该目录,在外面的目录上传,容器内部也会有。

上传完后可以进入容器内部进行验证

docker exec -it 容器id /bin/bash

使用unzip解压文件,并指定目录为当前文件夹下的ik目录,目录不存在的话会自动创建

unzip -d ./ik elasticsearch-analysis-ik-7.4.2.zip

解压完后要删除原来的zip文件

rm -rf elasticsearch-analysis-ik-7.4.2.zip

修改目录权限

chmod -R 777 ik/

如果没有unzip指令,使用以下指令安装
yum install unzip

进入容器内部验证ik分词器

docker exec -it 容器id /bin/bash

在这里插入图片描述
进入bin目录
在这里插入图片描述
用以下指令验证插件
在这里插入图片描述
使用Kibana测试

POST _analyze
{
  "analyzer": "ik_smart",
  "text": "安欣和高启强"
}

结果

{
  "tokens" : [
    {
      "token" : "安",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "欣",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR",
      "position" : 1
    },
    {
      "token" : "和",
      "start_offset" : 2,
      "end_offset" : 3,
      "type" : "CN_CHAR",
      "position" : 2
    },
    {
      "token" : "高",
      "start_offset" : 3,
      "end_offset" : 4,
      "type" : "CN_CHAR",
      "position" : 3
    },
    {
      "token" : "启",
      "start_offset" : 4,
      "end_offset" : 5,
      "type" : "CN_CHAR",
      "position" : 4
    },
    {
      "token" : "强",
      "start_offset" : 5,
      "end_offset" : 6,
      "type" : "CN_CHAR",
      "position" : 5
    }
  ]
}

4.自定义扩展词库

在使用ik分词器的时候,有些网络用词并不能分析出来,我们可以对词库进行一个扩展。

安装nginx,这一步用于拷贝nginx的配置文件

docker run -p 80:80 --name nginx -d nginx:1.10

将容器内的配置文件拷贝到指定目录

docker container cp nginx:/etc/nginx /mydata/

在这里插入图片描述
做完上面这件事,就可以把我们刚刚创建的那个nginx容器删掉了

docker stop 容器id
docker rm 容器id

将刚刚拷贝的nginx目录重命名为conf,重新创建一个新的nginx目录,将conf目录移动到新的nginx目录下

mv nginx conf
mkdir nginx
mv conf nginx/

创建新的nginx,执行以下命令

docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

启动成功后进入/mydata/nginx/html下新建index.html文件,写入以下内容

<h1>Hello World</h1>

然后访问对应的ip地址,端口号为80,出现以下界面证明nginx已经跑通了
在这里插入图片描述
继续在/mydata/nginx/html下新建es目录,然后进入es目录创建fenci.txt文件

mkdir es
cd es
vim fenci.txt

然后加入需要分词的内容

安欣
高启强

接着在ik分词器中进行配置,进入到ik分词器的目录下,我这里的目录是/mydata/elasticsearch/plugins/ik/
在这里插入图片描述
接着进入config目录,修改IKAnalyzer.cfg.xml文件
修改前是这样的
在这里插入图片描述
修改后是这样的
在这里插入图片描述
配置完后需要重启es,重启后再测试分词效果
在这里插入图片描述
以上仅供学习参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值