网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
2.3 解压
解压ik分词器到elasticsearch的plugins目录下
unzip elasticsearch-analysis-ik-7.17.0.zip -d /usr/local/elasticsearch1/plugins/analysis-ik
2.4 启动ES服务
su es
#进入ES安装文件夹:
cd /usr/local/elasticsearch1/bin/
#启动ES服务:
./elasticsearch -d
2.5 测试分词器效果
#算法1
GET /_analyze
{
"text":"测试语句",
"analyzer":"ik\_smart"
}
eg:
GET /_analyze
{
"text": "我爱美羊羊",
"analyzer": "ik\_smart"
}
#算法2
GET /_analyze
{
"text":"测试语句",
"analyzer":"ik\_max\_word"
}
eg:
GET /_analyze
{
"text": "我爱美羊羊",
"analyzer": "ik\_max\_word"
}
2.6 IK分词器词典
IK分词器根据词典进行分词,词典文件在IK分词器的config目录中。
- main.dic:IK中内置的词典。记录了IK统计的所有中文单词。
- IKAnalyzer.cfg.xml:用于配置自定义词库。
四、拼音分词器
拼音分词器可以将中文分成对应的全拼,全拼首字母等。
1.安装
和ik分词器安装一样,也是先将es服务关闭,将拼音分词器上传至虚拟机,并且分词器版本需要和es版本一致(参考ik分词器安装)
2.测试分词效果
GET /_analyze
{
"text":测试语句,
"analyzer":pinyin
}
eg:
GET /_analyze
{
"text": "xi yang yang",
"analyzer": "pinyin"
}
五、自定义分词器
前面两种分词器,各有优点,但是他们的功能确实不够完备,比如使用ik分词器可以对中文进行分词,但是却不能对拼音分词;所以在现实开发中,我们一般使用自定义分词器进行分词,这样既可以对文字分词,也可以对拼音分词,现在咱们来研究一下如何写一个ik+pinyin分词器。
1.创建自定义分词器
PUT /索引名
{
"settings" : {
"analysis" : {
"analyzer" : {
"ik\_pinyin" : { //自定义分词器名
"tokenizer":"ik\_max\_word", // 基本分词器
"filter":"pinyin\_filter" // 配置分词器过滤
}
},
"filter" : { // 分词器过滤时配置另一个分词器,相当于同时使用两个分词器
"pinyin\_filter" : {
"type" : "pinyin", // 另一个分词器
// 拼音分词器的配置
"keep\_separate\_first\_letter" : false, // 是否分词每个字的首字母
"keep\_full\_pinyin" : true, // 是否分词全拼
"keep\_original" : true, // 是否保留原始输入
"remove\_duplicated\_term" : true // 是否删除重复项
}
}
}
},
"mappings":{
"properties":{
"域名1":{
"type":域的类型,
"store":是否单独存储,
"index":是否创建索引,
"analyzer":分词器
},
"域名2":{
...
}
}
}
}
eg:
PUT /student2
{
"settings": {
"analysis": {
"analyzer": {
"ik\_pinyin":{
"tokenizer":"ik\_max\_word",
"filter":"pinyin\_filter"
}
},
"filter": {
"pinyin\_filter":{
"type":"pinyin",
"keep\_separate\_first\_letter" : false,
"keep\_full\_pinyin" : true,
"keep\_original" : true,
"remove\_duplicated\_term" : true
}
}
}


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**