Elasticsearch的ik分词器安装和验证

1、什么是分词器
        把文本转换为一个个的单词,分词称之为analysis。es默认只对英文语句做分词,中文不支持,每个中文字都会被拆分为独立的个体。
2、es内置分词器

  • standard:默认分词,单词会被拆分,大小会转换为小写。
  • simple:按照非字母分词。大写转为小写。
  • whitespace:按照空格分词。忽略大小写。
  • stop:去除无意义单词,比如the/a/an/is…
  • keyword:不做分词。把整个文本作为一个单独的关键词。

3、ik中的两种分词器

  • ik_max_word:会将文本做最细粒度的拆分,比如会将“我是中国人”拆分为“我,是,中国人,中国,国人”,会穷尽各种可能的组合,适合 Term Query;
  • ik_smart:会做最粗粒度的拆分,比如会将“我是中国人”拆分为“我,是,中国人”,适合 Phrase 查询。

4、自定义中文分词库
      中文词汇复杂繁多,ik分词器也不能保证所有情况下都能有效的分词,例如:“骚年在认真的学习”,就会被拆分成“骚,年在,认真的,学习”,很明显“年在”并不是一个词,同样的一些专属名词也不能很有效的分词,比如:“印象笔记”,“掘金网“等等,这时候我们就需要为分词器,添加自定义词汇。
5、安装ik分词器

1)下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

选择对应的版本,我之前安装的elasticsearch是7.4.2版本,ik也是这个版本。

Elasticsearch的ik分词器安装和验证_第1张图片

2)下载到plugins文件夹下

使用命名进入es容器内部

docker exec -it 0d3a094476dd /bin/bash

进入后直接切换到plugins目录,通过命令下载ik压缩包到此目录

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

如果出现wget没有安装,就先安装再下载。

#安装wget
yum install wget

Elasticsearch的ik分词器安装和验证_第2张图片

最后下载完成后可以看到目录下有elasticsearch-analysis-ik-7.4.2.zip文件。

Elasticsearch的ik分词器安装和验证_第3张图片

3)解压文件到ik文件夹下,重启es。

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

#赋予权限
chmod -R 777 ik/

Elasticsearch的ik分词器安装和验证_第4张图片

检查ik,进入bin目录,查看

elasticsearch-plugin list

重启es

#docker下执行
docker restart elasticsearch

#linux下执行
./bin/elasticsearch

4)验证ik

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


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

Elasticsearch的ik分词器安装和验证_第5张图片

Elasticsearch的ik分词器安装和验证_第6张图片

6、自定义分词库

1)在nginx/html下创建es目录,编写fenci.txt文档,插入要分词的内容。

mkdir es

Elasticsearch的ik分词器安装和验证_第7张图片

2)nginx访问

Elasticsearch的ik分词器安装和验证_第8张图片

3)修改ik分词器配置文件、添加自定义词典

cd /home/data/elasticsearch/plugins/ik/config

Elasticsearch的ik分词器安装和验证_第9张图片

修改IKAnalyzer.cfg.xml文件

vi IKAnalyzer.cfg.xml



        IK Analyzer 扩展配置
        
        custom.dic
         
        
        
        
        
        

#备份 
cp IKAnalyzer.cfg.xml   IKAnalyzer.cfg.xml20200724

修改为一下内容,重启es


        IK Analyzer 扩展配置
        
        
         
        
        
        http://172.16.175.211/es/fenci.txt 
        
        

4)验证自定义分词

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "乔碧萝殿下"
}

Elasticsearch的ik分词器安装和验证_第10张图片

如果有其他的分词可以自行在fenci.txt文件加的。

 

 

你可能感兴趣的:(elasticsearch,elasticsearch)