分词器

106 阅读1分钟

默认分词器

POST _analyze
{
  "text": "我是中国人"
}
分成一个一个的单个字

安装ik分词器

进入 es 容器内部 plugins 目录 docker exec -it 容器 id /bin/bash wget github.com/medcl/elast…

测试IK分词

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

扩展词库

扩展 一些时下流行词,或者自己自定义的一些IK没法识别的词。

使用nginx最为远程配置库,在nginx的/usr/share/nginx/html下新建fenci.txt

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

image.png

重启es,即可。

附录

  • 随便启动一个 nginx 实例,只是为了复制出配置 docker run -p 80:80 --name nginx -d nginx:1.10
  • 将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx . 别忘了后面的点
  • 修改文件名称:mv nginx conf 把这个 conf 移动到/mydata/nginx 下
  • 终止原容器:docker stop nginx
  • 执行命令删除原容器:docker rm $ContainerId
  • 创建新的 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