ik分词器的配置
分词器:能将一句话分成一个个单词
- elas默认没有中文分词器,也就是说默认中文的话全是按照一个个字打出来的:
POST _analyze
{
"text":"尚硅谷牛逼"
}
执行结果:
2. 配置分词器
常用的中文分词器为ik,安装的分词器版本要和elastic一致,这里我们下载ik-7.6.2,然后放到配置的目录下/mydata/elasticsearch/plugins/ik
重启es,再进行测试
POST _analyze
{
"analyzer": "ik_max_word",
"text":"尚硅谷牛逼"
}
这里发现虽然安装了分词器,但是有的词汇,分词器也不认识,接下来就需要我们手动扩展词库。
- 安装nginx
先将nginx的配置文件拷贝出来,在mydata目录下执行下面命令
docker run -p 80:80 --name nginx -d nginx:1.10
docker container cp nginx:/etc/nginx .
拷贝出来后再目录下面就会多一个nginx配置文件夹,我们将配置文件重新命名为conf,然后重新建立新的nginx文件夹,将conf移动到nginx下
mv nginx conf
mkdir nginx
mv conf nginx
查看
重新创建nginx容器,在html文件夹下面新建fenci.txt文件,并在里面添加尚硅谷和牛逼两个词汇
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
然后nginx可以查看这个文件的内容http://10.12.34.53/es/fenci.txt
4. 修改es配置/mydata/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml
,配置远程字典(remote_ext_dict),重启es
这里可以看到除了默认的硅谷这个词汇,现在尚硅谷和牛逼也被认为是词汇了,这就是分词器的作用