Elasticsearch安装ik分词插件

前置条件

  •  如果发现问题请留言
    如果有发现不正确的地方,欢迎留言指正,感激不尽!
  •  已安装好Elasticsearch
    本次安装插件版本为7.3.1,需与elasticsearch版本一致, elasticsearch安装在/home/elk/elasticsearch-7.3.1下.如果你想安装一个7.3.1版本的elasticsearch,可以参照Centos7安装Elasticsearch&Kibana进行安装
  •  已安装好kibana
    本教程中的kibana安装在home/elk/kibana-7.3.1-linux-x86_64下,使用kibana的dev tool执行相关分词验证操作
  •  已下载好ik分词插件
    本次安装插件包为elasticsearch-analysis-ik-7.3.1.zip
    官方下载地址找到相应版本进行下载
  •  系统及操作用户等
    本次安装操作系统为Centos7,用户为elk,已经有专门存放软件包的目录/home/elk/soft ,本教程中kibana访问地址为192.168.1.14:5601

插件安装

插件上传

通过xftp工具将分词插件包elasticsearch-analysis-ik-7.3.1.zip上传到虚拟机的/home/elk/soft目录下

å¨è¿éæå¥å¾çæè¿°

插件安装

以下命令全部使用elk用户操作

# 停止es服务
jps |grep Elasticsearch|awk {'print $1'}|xargs kill
# 确认es服务已停止,使用jps找不到Elsaticsearch进程则说明正确停止
jps |grep Elasticsearch
# 插件安装,执行以下命令进行安装,在提示时输入y,然后回车
 ~/elasticsearch-7.3.1/bin/elasticsearch-plugin install file:///home/elk/soft/elasticsearch-analysis-ik-7.3.1.zip
 # 查看已安装插件
 ~/elasticsearch-7.3.1/bin/elasticsearch-plugin list

å¨è¿éæå¥å¾çæè¿°

插件配置

ik分词插件自定义词典支持本地词库远程词库
本地词库:使用~/elasticsearch-7.3.1/config/analysis-ik/目录下的文件作为词典
远程词库:使用url指定扩展词典

本地词库配置

# 创建一个自定义扩展词文件
touch ~/elasticsearch-7.3.1/config/analysis-ik/my_extra.dic
# 创建一个停用词文件
touch ~/elasticsearch-7.3.1/config/analysis-ik/my_stopword.dic
# 编辑ik分词器配置文件
vim ~/elasticsearch-7.3.1/config/analysis-ik/IKAnalyzer.cfg.xml

按照以下内容进行配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 -->
        <entry key="ext_dict">my_extra.dic</entry>
         <!--用户可以在这里配置自己的扩展停止词字典-->
        <entry key="ext_stopwords">my_stopword.dic</entry>
</properties>

上面的配置指定了一个自定义词典文件my_extra.dic,一个自定义停用词文件my_stopword.dic

插件测试

# 启动es
~/elasticsearch-7.3.1/bin/elasticsearch -d
# 启动kibana 此种方式启动会有相关日志输出
~/kibana-7.3.1-linux-x86_64/bin/kibana &

访问kibana地址192.168.1.14:5601并点击主页面中的开发工具图标

å¨è¿éæå¥å¾çæè¿°

默认分词测试

测试仅针对本地词库进行了测试,远程词库测试与本地词库测试基本一致,只是不需要重启es.

在开发工具左边执行以下命令

GET _analyze
{
  "analyzer": "ik_smart",
  "text": ["ElasticSearch是一个基于Lucene的搜索服务器"]
}

返回内容如下

{
  "tokens" : [
    {
      "token" : "elasticsearch",
      "start_offset" : 0,
      "end_offset" : 13,
      "type" : "ENGLISH",
      "position" : 0
    },
    {
      "token" : "是",
      "start_offset" : 13,
      "end_offset" : 14,
      "type" : "CN_CHAR",
      "position" : 1
    },
    {
      "token" : "一个",
      "start_offset" : 14,
      "end_offset" : 16,
      "type" : "CN_WORD",
      "position" : 2
    },
    {
      "token" : "基于",
      "start_offset" : 16,
      "end_offset" : 18,
      "type" : "CN_WORD",
      "position" : 3
    },
    {
      "token" : "lucene",
      "start_offset" : 18,
      "end_offset" : 24,
      "type" : "ENGLISH",
      "position" : 4
    },
    {
      "token" : "的",
      "start_offset" : 24,
      "end_offset" : 25,
      "type" : "CN_CHAR",
      "position" : 5
    },
    {
      "token" : "搜索",
      "start_offset" : 25,
      "end_offset" : 27,
      "type" : "CN_WORD",
      "position" : 6
    },
    {
      "token" : "服务器",
      "start_offset" : 27,
      "end_offset" : 30,
      "type" : "CN_WORD",
      "position" : 7
    }
  ]
}

可见初始分词效果还是不错的.

自定义扩展词测试

比如我们希望将搜索服务器作为一个词处理,还希望过滤掉这个词

# 添加一个自定义词汇,多个词汇用换行分隔
echo 搜索服务器 > ~/elasticsearch-7.3.1/config/analysis-ik/my_extra.dic
# 添加一个自定义停用词,多个用换行分隔
echo 的 > ~/elasticsearch-7.3.1/config/analysis-ik/my_stopword.dic

å¨è¿éæå¥å¾çæè¿°

目前本地词库(本地文件)方式不支持词库热更新需要重启es,才会生效

# 停止es服务
jps |grep Elasticsearch|awk {'print $1'}|xargs kill
# 确认es服务已停止,使用jps找不到Elsaticsearch进程则说明正确停止
jps |grep Elasticsearch
# 启动es
~/elasticsearch-7.3.1/bin/elasticsearch -d

在开发工具中再次执行以下命令

GET _analyze
{
  "analyzer": "ik_smart",
  "text": ["ElasticSearch是一个基于Lucene的搜索服务器"]
}

返回内容如下

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值