分词
分词就是指将一个文本转化成一系列单词的过程,也叫文本分析,在ElasticSearch中称之为Analysis
举例: 我是中国人 -->我/是/中国人
分词API
指定分词器进行分词
POST /_analyze
{
"analyzer":"standard",
"text":"hello world"
}
在结果中不仅可以看出分词的结果,还返回了该词在文本中的位置
指定索引分词
POST /itcast/_analyze
{
"analyzer":"standard",
"field":"hobby",
"text":"听音乐"
}
中文分词
中文分词的难点在于,在汉语中没有明显的词汇分界点,比如在英语中,空格可以作为分隔符,如果分隔不正确就会造成歧义.
常用中文分词器,IK,jieba,THULAC等,推荐使用IK分词器
IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包,从2006年12月推出1.0版开始,IKAnalyzer已经推出了三个大版本.最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件,新版本的IKAnalyzer3.0则发展为面向java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现
采用了特有的"正向迭代最细粒度切分算法",具有80万字/秒的高速处理能力,采用了多子处理器分析模式,支持:英文字母(IP地址,Email,URL).数字(日期,常用中文量词,罗马数字,科学计数法)中文词汇(姓名,地名处理)等分词处理.优化的词典存储,更小的内存占用
IK 分词器ElasticSearch插件地址: https://github.com/medcl/elasticsearch-analysis-ik 注意别下载错了,下载的是这个
安装方法:
mkdir es/plugins/ik
# 把zip包传入ik目录中
# 如果不能使用unzip命令 先切换回root 并执行
yum install -y unzip zip
# 安装unzip命令 再切换回elsearch用户再进行解压操作就可以了
#解压
unzip elasticsearch-analysis-ik-6.5.4.zip
# 注意 看一下当前这个ik目录是不是elsearch用户权限的,如果不是的话,切换一下目录权限
chown elsearch:elsearch /mystudy/es/ -R
# 重启elasticsearch
# 注意启动es需要切换到elsearch用户
cd /mystudy/es/bin
./elasticsearch -d
# 使用jps命令查看是否成功启动即可
测试ik分词器是否启动成功
指定ik分词器进行分词
POST /_analyze
{
"analyzer":"ik_max_word",
"text":"我是中国人"
}
可以看到分词成功