Elasticsearch实现中文分词
邵奈一
教程目录
0x00 教程内容
0x01 默认标准分词效果展示
1. 默认标准分词器的使用
2. 新建一个测试索引
3. 查询及效果展示
0x02 分词插件elasticsearch-analysis-ik
1. 下载插件
2. 启动Elasticsearch
3. 重新创建测试索引
0x03 ik分词效果展示
1. ik_max_word分词
2. ik_smart分词
0xFF 总结
0x00 教程内容
默认标准分词效果展示
分词插件elasticsearch-analysis-ik
ik分词效果展示
0x01 默认标准分词效果展示
1. 默认标准分词器的使用
a. 英文分词效果展示
http://localhost:9200/_analyze?analyzer=standard&pretty=true&text=I am teacher SHAO
点击提交请求后,可看到右边有分词效果:
b. 中文分词效果展示
http://localhost:9200/_analyze?analyzer=standard&pretty=true&text=邵奈一老师
可看到,老师都被分开了,对于中文效果并不理想
2. 新建一个测试索引
a. 索引名:shaonaiyi,类型:teacher
http://localhost:9200/shaonaiyi
{
"settings": {
"number_of_replicas": 0
},
"mappings": {
"teacher": {
"dynamic": false,
"properties": {
"value": {
"type": "text"
}
}
}
}
}
b. 插入数据
http://localhost:9200/shaonaiyi/teacher
{
"value":"学大数据"
}
1
2
3
类似插入多两条,如下面:
{
"value":"大学讲师"
}
1
2
3
{
"value":"学习技能"
}
1
2
3
3. 查询及效果展示
a. 查询【POST】
http://localhost:9200/shaonaiyi/teacher/_search/
{
"query": {
"match": {
"value": "大学"
}
}
}
1
2
3
4
5
6
7
b .结论
我们想要的结果只是:大学讲师,可是其他带“大”字和“学”字的结果都搜索出来了,这不是我们想要的结果。
0x02 分词插件elasticsearch-analysis-ik
1. 下载插件
a. github.com
b. 翻页,找到自己对应的Elasticsearch版本(如:5.6.1)
c. 点击下载并解压到Elasticsearch主目录的plugins目录下(如:E:\SmallTools\elasticsearch-5.6.1\plugins\elasticsearch)
2. 启动Elasticsearch
a. 关闭之前的elasticsearch.bat窗口(如没有启动则直接启动)
b. 打开elasticsearch.bat文件
c. 重启后刷新http://localhost:9100/,可看到前面创建的shaonaiyi索引,但需要重新创建索引,因为插件安装好了
3. 重新创建测试索引
a. 删除之前的shaonaiyi索引【DELETE】
http://localhost:9200/shaonaiyi
b. 创建索引【PUT】
http://localhost:9200/shaonaiyi
{
"settings": {
"number_of_replicas": 0
},
"mappings": {
"teacher": {
"dynamic": false,
"properties": {
"value": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
}
}
}
}
}
0x03 ik分词效果展示
1. ik_max_word分词
a. 查询【POST】
http://localhost:9200/_analyze?analyzer=ik_max_word&pretty=true&text=邵奈一老师
2. ik_smart分词
a. 将上面的三个均ik_max_word改为ik_smart
b. 创建一个新索引shaonaiyi888
c. 重新查询,比较不同
0xFF 总结
如没有Elasticsearch基础或者有疑惑,请参考此篇教程:Elasticsearch的安装(windows)
更多与ik分词插件相关知识请看github:medcl/elasticsearch-analysis-ik
看以后是否有需求和时间,再出一个模仿百度的简单搜索引擎。
作者简介:邵奈一
大学大数据讲师、大学市场洞察者、专栏编辑
公众号、微博、CSDN:邵奈一
本系列课均为本人:邵奈一原创,如转载请标明出处
————————————————
版权声明:本文为CSDN博主「邵奈一」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shaock2018/article/details/86621887