网站域名注册时间查询,企业网站可信认证必须做吗,工厂网站开发,wordpress 安全问题文章目录 使用standard analysis对英文进行分词使用standard analysis对中文进行分词安装插件对中文进行友好分词-ik中文分词器下载安装和配置IK分词器使用ik_smart分词器使用ik_max_word分词器 借助Nginx实现ik分词器自定义分词网络新词 ES官方文档Text Analysis 使用standard… 文章目录 使用standard analysis对英文进行分词使用standard analysis对中文进行分词安装插件对中文进行友好分词-ik中文分词器下载安装和配置IK分词器使用ik_smart分词器使用ik_max_word分词器 借助Nginx实现ik分词器自定义分词网络新词 ES官方文档Text Analysis 使用standard analysis对英文进行分词
ES默认使用standard analysis;如下可以使用POST _analyze测试standard analysis是如何分词的
POST _analyze
{analyzer: standard,text: The 2 QUICK Brown-Foxes jumped over the lazy dogs bone.
}该API会将文本内容分词成如下单词
[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dogs, bone ]使用standard analysis对中文进行分词
默认的 standard analysis 对每个汉字进行了分词显然这不是我们所期望
安装插件对中文进行友好分词-ik中文分词器
下载安装和配置IK分词器
1、下载ik分词器 gitHub下载地址找到和当前ES匹配的版本,ik的版本是跟着ES走的。 2、使用wget命令下载zip包 也不局限于这一种方式只要能把zip下载并上传到服务器上怎么样都行
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.0/elasticsearch-analysis-ik-7.14.0.zip3、在plugins目录下创建ik文件夹unzip命令进行解压到ES的plugins/ik目录
# 将zip包解压到指定的目录/home/es-kibana/volume/plugin/ik下并不覆盖已有的文件
unzip -n elasticsearch-analysis-ik-7.14.0.zip -d /home/es-kibana/volume/plugins/ik因为本人使用Docker安装ES并在docker run的时候将plugins挂载到了宿主机的 /home/es-kibana/volume/plugins目录下所以就直接在该目录下创建ik文件夹并执行上面的解压命令 4、进入容器内部查询plugin list确认ik安装成功
# 进入容器内部
[rootVM-8-3-opencloudos ik]# docker exec -it b72e9104d50a /bin/bash
# 也可以先看看宿主机plugins目录下的东西是否成功映射给容器内的plugins
[rootb72e9104d50a elasticsearch]# ls
bin config data jdk lib LICENSE.txt logs modules NOTICE.txt plugins README.asciidoc
# 进入bin,查看plugin列表
[rootb72e9104d50a bin]# elasticsearch-plugin list5、重新启动ES
6、前往kibana的控制台进行中文分词验证 ik提供了两种分词器
ik_smartik_max_word
使用ik_smart分词器
下图是使用ik_smart分词器的结果显示将‘我是中国人’分词为[‘我’,‘是’,‘中国人’]
使用ik_max_word分词器
下面尝试使用ik_max_word分词器进行中文分词它将‘我是中国人’这句中文进行最大限度的分词结果为[‘我’,‘是’,‘中国人’,‘中国’,‘国人’]
借助Nginx实现ik分词器自定义分词网络新词
上面在ES中安装使用ik分词器完成了中文分词但是在日常的生活中不断地会涌出各种各样新奇的网络热词比如”尊嘟假嘟“、”绝绝子“、”爷青回“、”乔碧萝殿下“等等这些词汇在ik中不存在便会逐字分词如果期望这些新兴的网络热词按照自己的意思进行分词该如何操作如下图的效果这样 思路ik的配置文件IKAnalyzer.cfg.xml中支持自定义配置远程扩展字典将Nginx作为远程扩展字典
自定义静态资源文件ik_analyze.txt;用来收录网络新词保证网络能正常访问ik_analyze.txt静态资源将ik_analyze.txt静态资源的访问路径配置给IKAnalyzer.cfg.xml文件中的entry标签
第一步、使用Nginx作为Ik的扩展分词库 首先保证Nginx可以正常访问接着在Nginx的静态资源目录/html下自定义文件用来收录新词 并且该静态资源可以正常访问如下图所示 第二步、配置ik的远程扩展字典 ik插件安装在ES的plugins目录下在该目录下可以进入config目录就可以看到IKAnalyzer.cfg.xml文件 对其进行编辑如下将ik_analyze.txt资源的访问路径配置其中即可 第三步、进行验证可以看到”乔碧萝殿下“分词为[“乔碧萝”,“殿下”]
POST _analyze
{analyzer: ik_max_word,text: 乔碧萝殿下
}