elasticsearch 安装 ik中文分词器

1,下载ik分词器,根据自己es的版本下载对应的版本
下载地址:
https://github.com/medcl/elasticsearch-analysis-ik

我这里是使用的6.2.1版本,直接下载就可以了

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.1/elasticsearch-analysis-ik-6.2.1.zip

zip包里面的文件结构如下:
在这里插入图片描述
备注:
如果是下载的其他版本可能没有上面结构图的包,这个时候需要先解压压缩包,进入文件目录,然后本地在使用mvn命令打个包即可,打包命令(如果没有安装maven的请自行百度安装):

mvn package

打包完成后在 \target\releases 目录下就能够看到相同的文件结构了
在这里插入图片描述

config文件夹里面的内容是分词器分词时读取文件的主要目录,大概说说里面的各文件内容

在这里插入图片描述

  1. IKAnalyzer.cfg.xml:用来配置自定义词库
  2. main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起
  3. quantifier.dic:放了一些单位相关的词
  4. suffix.dic:放了一些后缀
  5. surname.dic:中国的姓氏
  6. stopword.dic:英文停用词
ik原生最重要的两个配置文件
  1. main.dic:包含了原生的中文词语,会按照这个里面的词语去分词
  2. stopword.dic:包含了英文的停用词

2,解压 elasticsearch-analysis-ik-6.2.1.zip

unzip elasticsearch-analysis-ik-6.2.1.zip

便于区分修改解压后的文件夹名称为 elasticsearch-analysis-ik-6.2.1

mv elasticsearch elasticsearch-analysis-ik-6.2.1

3,将解压后的文件夹移动到es的plugins目录下

mv elasticsearch-analysis-ik-6.2.1 /usr/local/elasticsearch-6.2.1/plugins/

4,重启es

5,ik 分词器测试
假如我们直接使用 standard 对中文进行分词看看有什么效果,执行如下语句

{
  "text": "string是基本数据类型吗",
  "analyzer": "standard"
}

结果:
在这里插入图片描述
很明显,被分成了一个个单一的词,显然这并不是我们想要的效果,因为单个词汇在文档搜索中意义并不大

安装了中文分词器后,我们再来做如下测试,运行如下语句,指定ik分词器:

{
  "text": "string是基本数据类型吗",
  "analyzer": "ik_max_word"
}

结果:
在这里插入图片描述
这时候IK分词器将我们的一段句子拆分成了不同长度的词汇,看起来合理多了

最后在使用ik分词器搜索一下数据,看看是不是想要的结果
在这里插入图片描述
可以看到这个时候就已经按照问我们想要的分词结果查询出来了数据,到此,大功告成

es各个搜索条件含义:

match 搜索key会被分词,搜索的filed中的值是分了词,然后再匹配
term 精确匹配输入的参数(不使用分析器)
wildcard 没用过
prefix 前缀匹配
fuzzy 模糊匹配
range 范围匹配 匹配数值类型,比如说对于用户样本搜索,年龄范围在20~30之间的,就用range。
query_string 查询text类型的字段
text 文本类型,文本类型可以设置分词器属性
missing 是否存在该字段值 和exists反义

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值