Elasticsearch搜索引擎学习笔记(四)
分词器
内置分词器
standard:默认分词,单词会被拆分,大小会转换为小写。
simple:按照非字母分词。大写转为小写。
whitespace:按照空格分词。忽略大小写。
stop:去除无意义单词,比如the/a/an/is…
keyword:不做分词。把整个文本作为一个单独的关键词。
接口
POST /_analyze
{
"analyzer": "standard",
"text": "text文本"
}
POST /my_doc/_analyze
{
"analyzer": "standard",
"field": "name",
"text": "text文本"
}
中文分词器
es内置分词器不支持对中文拆分,会将中文的每一个汉字都拆开,这不满足需求,所以需要安装中文分词插件。
https://github.com/medcl/elasticsearch-analysis-ik下载对应es版本的。
解压 unzip elasticsearch-analysis-ik-6.4.3.zip -d /usr/local/elasticsearch-6.4.3/plugins/ik
重启es
测试一下

可以拆分成下面这些
{
"tokens": [
{
"token": "上下班",
"start_offset": 0,
"end_offset": 3,
"type": "CN_WORD",
"position": 0
},
{
"token": "上下",
"start_offset": 0,
"end_offset": 2,
"type": "CN_WORD",
"position": 1
},
{
"token": "下班",
"start_offset": 1,
"end_offset": 3,
"type": "CN_WORD",
"position": 2
},
{
"token": "班车",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 3
},
{
"token": "车流量",
"start_offset": 3,
"end_offset": 6,
"type": "CN_WORD",
"position": 4
},
{
"token": "车流",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 5
},
{
"token": "流量",
"start_offset": 4,
"end_offset": 6,
"type": "CN_WORD",
"position": 6
},
{
"token": "很大",
"start_offset": 6,
"end_offset": 8,
"type": "CN_WORD",
"position": 7
}
]
}
自定义中文词库
有些网络用语或专有名词不能被当成一个词,所以需要我们自定义。
1、vim /usr/local/elasticsearch-6.4.3/plugins/ik/config/IKAnalyzer.cfg.xml

2、在IKAnalyzer.cfg.xml同级创建custom.dic
3、在custom.dic中添加自定义中文词语

4、重启。现在es就不会把慕课网拆分成3个单独的字了

Elasticsearch搜索引擎学习笔记(四)的更多相关文章
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
- 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
随机推荐
- 【XML】Java创建XML文档
package example01; import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers ...
- 干掉EasyExcel!FastExcel初体验
我们知道 EasyExcel 在作者从阿里离职之后就停止维护了,但在前两周 EasyExcel 原作者推出了他的升级版框架 FastExcel.以下是 FastExcel 的上手实战过程,带大家一起提 ...
- WPS在ArchLinux常见问题
问题简述wps在aur源上有包,直接下载安装即可,但是通过包管理器安装的wps会出现一些奇怪的问题,我遇到的有两个: wps在打开时提示缺少字体wps word不能导出pdf文档,同时wps pdf也 ...
- Windows交叉编译MNN-3.0.0安卓版本库
一.写在前面 以下的步骤.流程都是基于MNN的文档,再结合自己的实践得出的,仅作为参考. 博主的环境是windows10专业版 MNN文档 MNN的Github仓库地址 二.下载MNN-3.0.0主库 ...
- Qt音视频开发18-海康sdk回调
一.前言 海康sdk显示实时视频流除了支持句柄方式以外,也支持回调的方式拿到每一张图片自己绘制处理,当然回调除了拿到视频数据,其实音频数据也一块拿到了,自行调用音频设备播放就行,关于海康sdk回调这块 ...
- WorldWind源码剖析系列:漫游时四叉树瓦片类QuadTile的运行思路
用户在窗口漫游时,需要加载精细的高程和纹理数据时的处理思路:当用户漫游时直到窗口相机的视场角的1/2小于(瓦片大小*瓦片绘制距离的乘积)时,才初始化四叉树瓦片类QuadTile,或者加载本地缓存中的数 ...
- .Net程序员机会来了,微软官方新推出一个面向Windows开发者本地运行AI模型的开源工具
想要开发AI产品的.Net程序员机会来了,这个项目应该好好研究. 虽然说大模型基本都有提供网络API,但肯定没有直接使用本地模型速度快. 最近微软官方新推出AI Dev Gallery开源项目,可以帮 ...
- HTTP协议超级详解【转载】
HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数据通信的基础. ...
- Github配置SSH避免远程提交重复输入用户名密码
一. 前言 Logon failed, use ctrl+c to cancel basic credential prompt. 是不是提交会遇到上述错误,每次远程提交至Github需要重新输入用户 ...
- Vue数据更新不渲染页面的问题
一. 问题现象 在通过数组下标的方式修改集合元素,元素的值确实是更新了,但是页面不能重新渲染. 二. 原因分析 Vue官方文档传送门 三. 解决方案 // 针对数组使用 this.$set(arr,i ...