笔记大纲
-
下载对应版本zip包,上传自定义目录/usr/local/software下
-
复制到/usr/share/elasticsearch/plugins下
-
切换到plugins目录下
-
解压压缩文件
-
重启Linux系统
-
重启系统
-
验证中文分词
- 默认词库
- 指定ik_smart中文词库
- 指定ik_max_word中文词库
-
基于中文分词搭建索引
-
Nginx静态资源配置(作为远程扩展字典)
-
自定义中文词库
(中文分词词典)分词器下载:https://github.com/medcl/elasticsearch-analysis-ik
![](https://i-blog.csdnimg.cn/blog_migrate/1a09257939ef076898b9f3dbbd71ddc7.png)
一、下载对应版本zip包,上传自定义目录/usr/local/software下
二、复制到/usr/share/elasticsearch/plugins下
cp elasticsearch-analysis-ik-5.6.4.zip /usr/share/elasticsearch/plugins/
//备份注意:plugins插件的存放层数很关键,不要自定义目录存放!!!
三、切换到plugins目录下
[root@localhost software]# cd /usr/share/elasticsearch/plugins/
[root@localhost plugins]# ll
total 4404
-rw-r--r--. 1 root root 4502411 Nov 7 14:22 elasticsearch-analysis-ik-5.6.4.zip
四、解压压缩文件
unzip elasticsearch-analysis-ik-5.6.4.zip
drwxrwxrwx. 3 root root 4096 Nov 12 2017 elasticsearch
-rw-r--r--. 1 root root 4502411 Nov 7 14:22 elasticsearch-analysis-ik-5.6.4.zip
五、reboot重启系统
注意!!!重启电脑时需要删除elasticsearch-analysis-ik-5.6.4.zip
压缩包!,不然elastisearch服务不能启动!
查看elasticsearch服务状态 systemctl status elasticsearch
六、验证中文分词
不同分词器,分词有明显区别,定义一个type不能再使用默认的mapping,要手工建立mapping, 因为要选择分词器!
(1)默认词库
GET movie_index/_analyze
{
"text": "我是Java程序员"
}
(2)指定ik_smart中文词库
GET movie_index/_analyze
{
"analyzer": "ik_smart",
"text": "我是Java程序员"
}
(3)指定ik_max_word中文词库
GET movie_index/_analyze
{
"analyzer": "ik_max_word",
"text": "我是Java程序员"
}
七、基于中文分词搭建索引
(1)新建索引
PUT movie_chn
{
"mappings": {
"movie_type_chn":{
"properties": {
"id":{
"type": "long"
},
"name":{
"type": "text"
, "analyzer": "ik_smart" //指定中文分析库
},
"doubanScore":{
"type": "double"
},
"actorList":{
"properties": {
"id":{
"type":"long"
},
"name":{
"type":"keyword" //keyword关键字
}
}
}
}
}
}
}
(2)新增测试数据
PUT /movie_chn/movie_type_chn/1
{ "id":1,
"name":"红海行动",
"doubanScore":8.5,
"actorList":[
{"id":1,"name":"张译"},
{"id":2,"name":"海清"},
{"id":3,"name":"张涵予"}
]
}
PUT /movie_chn/movie_type_chn/2
{
"id":2,
"name":"湄公河行动",
"doubanScore":8.0,
"actorList":[
{"id":3,"name":"张涵予"}
]
}
PUT /movie_chn/movie_type_chn/3
{
"id":3,
"name":"红海事件",
"doubanScore":5.0,
"actorList":[
{"id":4,"name":"张晨"}
]
}
(3)查询测试数据
GET /movie_chn/movie_type_chn/_search
{
"query": {
"match": {
"name": "红海战役"
}
}
}
GET /movie_chn/movie_type_chn/_search
{
"query": {
"term": {
"actorList.name": "张译"
}
}
}
八、Nginx静态资源配置(作为远程扩展字典)
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name 192.168.43.111;
location /fenci/ {
root es;
}
}
在/usr/local/nginx/
下建/es/fenci/
目录加分词fenci.txt
,fenci.txt进行关键词编写,每一行代表一个词!
vim fenci.txt //添加“林大侠侠大林林”关键词
重启nginx服务器
Windows进访问测试http://192.168.43.111/fenci/fenci.txt
注意:需要下浏览器的默认编码,修改成UTF-8!
九、自定义中文词库
注意:(nginx发布静态资源)远程扩展字库更新,不需要重启nginx,不需要重启es!
[root@localhost config]# pwd
/usr/share/elasticsearch/plugins/elasticsearch/config
[root@localhost config]# ll
total 8260
-rw-r--r--. 1 root root 5225922 Nov 12 2017 extra_main.dic
-rw-r--r--. 1 root root 63188 Nov 12 2017 extra_single_word.dic
-rw-r--r--. 1 root root 63188 Nov 12 2017 extra_single_word_full.dic
-rw-r--r--. 1 root root 10855 Nov 12 2017 extra_single_word_low_freq.dic
-rw-r--r--. 1 root root 156 Nov 12 2017 extra_stopword.dic
-rw-r--r--. 1 root root 625 Nov 12 2017 IKAnalyzer.cfg.xml
-rw-r--r--. 1 root root 3058510 Jun 13 2016 main.dic
-rw-r--r--. 1 root root 123 Jun 13 2016 preposition.dic
-rw-r--r--. 1 root root 1824 Jun 13 2016 quantifier.dic
-rw-r--r--. 1 root root 164 Jun 13 2016 stopword.dic
-rw-r--r--. 1 root root 192 Jun 13 2016 suffix.dic
-rw-r--r--. 1 root root 752 Jun 13 2016 surname.dic
[root@localhost config]# vim IKAnalyzer.cfg.xml
重启elastisearch服务
kibana控制台测试(测试成功!!!)http://192.168.43.111:5601/app/kibana#/dev_tools/console
☝上述分享来源个人总结,如果分享对您有帮忙,希望您积极转载;如果您有不同的见解,希望您积极留言,让我们一起探讨,您的鼓励将是我前进道路上一份助力,非常感谢!我会不定时更新相关技术动态,同时我也会不断完善自己,提升技术,希望与君同成长同进步!
☞本人博客:https://coding0110lin.blog.csdn.net/ 欢迎转载,一起技术交流吧!