Docker:Elasticsearch安装配置IK分词器

一、背景:

  搞了elasticsearch和kibana的安装和配置,在进行分词的时候没有达到自己预想的效果,于是写一下elasticsearch的ik分词器的安装和配置(自定义分词)。

二、解决方式:

1:首先看看没有加ik分词器的效果。

POST _analyze
{
  "analyzer": "standard",
  "text": "我是中国人"
}

2:下载ik软件包。

https://github.com/medcl/elasticsearch-analysis-ik

 3:选择自己响应版本。

 4:将下载好的文件上传到我们elasticsearch文件夹的plugins下。

5: 重启elasticsearch ,测试。

docker restart es的名称或者ip


POST _analyze
{
  "analyzer": "ik_smart",
  "text": "我是炎黄子孙"
}

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

6:上面已经安装好了ik分词器,但也不是我们想要的结果,"炎黄子孙"怎么能拆分成二个"炎黄"

"子孙",我们要自定义词库,创建nginx等文件夹。

mkdir nginx

下载nginx 镜像

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

7:将容器内的配置文件拷贝到当前目录。

docker container cp nginx:/etc/nginx . 

注意:别忘了后面的点

 8:修改文件名称:

mv nginx conf

9:将conf 移动到/mydata/nginx 下

mv conf nginx/

10:终止原容器。

docker stop nginx

11:执行命令删除原容器。

docker rm $ContainerId

12:创建新的 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

13:在nginx 下的html文件夹下创建index.html。

 

 14:在html文件夹下创建es文件夹。

mkdir es

15:进入es,创建fenci.txt文件

vi fenci.txt

 

 16:自定义我们的词。

输入:http://192.168.56.10/es/fenci.txt

17: 修改/usr/share/elasticsearch/plugins/ik/config/中的 IKAnalyzer.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict"></entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://192.168.56.10/es/fenci.txt</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties

18:重启es。

19:验证效果。

 

三、总结:

送人玫瑰 手有余香

猜你喜欢

转载自blog.csdn.net/weixin_42188778/article/details/126500500