Elasticsearch个人心得笔记(四)
ELASTICSEARCH的mapping设置
目录
ELASTICSEARCH的mapping设置
一.mapping映射结构
1.1动态映射
2.静态手动映射
3.对比数据库
4.对象与json的转化
1.一个普通类的对象
2.稍微复杂一些的对象
3.之前JSON数据转换为Java对象
二.ik分词器插件引入到ELASTICSEARCH
1.文件拷贝
2.安装依赖(已有不要安装)
3.解压
4.删除安装包
5.进入到Config文件夹
6.将elasticsearch的文件夹名称修改成analysis-ik
7.重新启动es加载plugins中的ik分词器
8.访问es提供的接口,实现不同的分词器使用
9.配置扩展和停用词典
1.plugins目录下的ik分词器中config文件夹中找到IKAnalyzer.cfg.xml
2.没找到,去上传一份
3.找错文件夹 上一步可以不用做
4.配置扩展和停用
5.生成对应的词典们
6.输出结果
10.通过mapping设置将ik_max_word作为字符串类型的分词器使用
1.index05中,定义article
2.新建一个index05
3.在index05中添加一个article类型的自定义mapping结构
4.index05的article类型中新增几个document
5.验证是否使用了ik分词器将title中java编程思想分词计算为{java}{编程}{思想}
一.mapping映射结构
1.1动态映射
在新增任何数据之前的空索引中,动态mapping没有配置,空的内容
1.添加一个新的index03
2.查询mapping 状态
- curl -XGET http://10.42.60.249:9200/index03/_mapping
返回结果
{"index03":{"mappings":{}}}
- 一旦添加任何数据到索引中,mapping结构会根据你的数据类型
- {
- "index03": {
- "mappings": {
- "article": { //对article类型定义的映射配置
- "properties": { //mapping中的具体属性
- "content": { //content域的设置
- "type": "text", //字符串类型,并且根据text定义分词计算
- "fields": { //对一个域的属性做扩展
- "keyword": { //查询可用域
- "type": "keyword", //keyword类型相当于lucene底层使用的StringField类型, 整体也可以作为一词项使用
- "ignore_above": 256//作为整体使用时,字符串超过256字节,keyword类型就不生效了
- }
- }
- },
- "id": {
- "type": "text",
- "fields": {
- "keyword": {
- "type": "keyword",
- "ignore_above": 256
- }
- }
- },
- "title": {
- "type": "text",
- "fields": {
- "keyword": {
- "type": "keyword",
- "ignore_above": 256
- }
- }
- }
- }
- }
- }
- }
- }
- 在index03中添加一个新的域,给定一个值不是字符串是整数"product_id":1
- {
- "index03": {
- "mappings": {
- "article": {
- "properties": {
- "content": {
- "type": "text",
- "fields": {
- "keyword": {
- "type": "keyword",
- "ignore_above": 256
- }
- }
- },
- "id": {
- "type": "text",
- "fields": {
- "keyword": {
- "type": "keyword",
- "ignore_above": 256
- }
- }
- },
- "product_id": {
- "type": "long"
- },
- "title": {
- "type": "text",
- "fields": {
- "keyword": {
- "type": "keyword",
- "ignore_above": 256
- }
- }
- }
- }
- }
- }
- }
- }
对于某个索引,中某个类型中的某个域属性,一旦动态映射完成,无法修改;添加数据之前提前将mapping做好
2.静态手动映射
新增一个index04,新增数据之前,将其对应artilce类型中的content只定义为text,id定义为"integer"/"int",title定义为"text",imgUrl定义为"keyword"
- #curl -XPUT http://10.9.151.60:9200/index04
新建完自定义的mapping重新获取index04的内容
- {
- "index04": {
- "mappings": {
- "book": {
- "properties": {
- "content": {
- "type": "text"
- },
- "id": {
- "type": "integer"
- },
- "imgUrl": {
- "type": "keyword"
- },
- "title": {
- "type": "text"
- }
- }
- }
- }
- }
- }
3.对比数据库
mapping结构设置,与数据库中定义一个表格的结构(scheming),是一样的意义
4.对象与json的转化
对象和json的对应关系:
1.一个普通类的对象
class User {private String id;private Integer age;}
user对象对应json字符串
{"id":"uuid1","age":18}
{
"id": "uuid1",
"age": 18
}
2.稍微复杂一些的对象
class Order{private String order_id;private OrderShipping shipping;private List<OrderItem> orderItems;}class OrderShipping{private String receiver;private String address;}
order对象对应的json
{"order_id":"uuid","shipping":{"receiver":"张三","address":"beijing"}}
{
"order_id": "uuid",
"shipping": {
"receiver": "张三",
"address": "北京"
},
"orderItems":[{"":"","":""},{"":"","":""},{"":"","":""}]
}
3.之前JSON数据转换为Java对象
{"index04": {"mappings": {"book": {"properties": {"content": {"type": "text"},"id": {"type": "integer"},"imgUrl": {"type": "keyword"},"title": {"type": "text"}}}}}
}
转换Java对象
第一层
class Object1{private Object2 index04;}
- {"index04":{Object2的json}}
第二层
class Object2{private Object3 mappings;}
- {"mappings":{object3的json}}
第三层
class Object3{private Object4 book;}
- {"book":{object4的json}}
第四层
class Object4 {private Object5 properties;}
- {"properties":{object5的json}}
第五层
class Object5{private Object6 content;private Object6 title;lprivate Object6 id;private Object6 imgUrl;}
- {"content":{object6的json},"title":{object6的json},"id":{object6的json},"imgUrl":{object6的json}}
第六层
class Object6{private String type;}
- {"type":"text/integer"}
二.ik分词器插件引入到ELASTICSEARCH
1.文件拷贝
2.安装依赖(已有不要安装)
3.解压
4.删除安装包
将安装包一定要删除,es的启动会加载plugins文件夹下内容,一旦发现不认识的zip包,启动报错
5.进入到Config文件夹
6.将elasticsearch的文件夹名称修改成analysis-ik
7.重新启动es加载plugins中的ik分词器
我的之前报错,内存不足,直接关闭云主机,不惯毛病,
具体错误,可以CSDN 不过好多博客写全是废话,屁都不着边,看也白看
8.访问es提供的接口,实现不同的分词器使用
http://10.42.60.249:9200/index01/_analyze?analyzer=ik_max_word&text=中华人民共和国
- index01:一个存在的索引
- _analyze:对分词的测试
参数:analyzer=ik_max_word,就是ik分词器的名称
text=中华人民共和国,计算分词的测试字符串
9.配置扩展和停用词典
1.plugins目录下的ik分词器中config文件夹中找到IKAnalyzer.cfg.xml
2.没找到,去上传一份
3.找错文件夹 上一步可以不用做
4.配置扩展和停用
5.生成对应的词典们
- ext.dic:华人民
- stopword.dic:人民
6.输出结果
{"tokens": [{"token": "中华人民共和国","start_offset": 0,"end_offset": 7,"type": "CN_WORD","position": 0}, {"token": "中华人民","start_offset": 0,"end_offset": 4,"type": "CN_WORD","position": 1}, {"token": "中华","start_offset": 0,"end_offset": 2,"type": "CN_WORD","position": 2}, {"token": "华人民","start_offset": 1,"end_offset": 4,"type": "CN_WORD","position": 3}, {"token": "华人","start_offset": 1,"end_offset": 3,"type": "CN_WORD","position": 4}, {"token": "人民共和国","start_offset": 2,"end_offset": 7,"type": "CN_WORD","position": 5}, {"token": "共和国","start_offset": 4,"end_offset": 7,"type": "CN_WORD","position": 6}, {"token": "共和","start_offset": 4,"end_offset": 6,"type": "CN_WORD","position": 7}, {"token": "国","start_offset": 6,"end_offset": 7,"type": "CN_CHAR","position": 8}]
}
10.通过mapping设置将ik_max_word作为字符串类型的分词器使用
1.index05中,定义article
- {
- "properties": {
- "content": {
- "type": "text",
- "analyzer":"ik_max_word"
- },
- "title": {
- "type": "text",
- "analyzer":"ik_max_word"
- },
- "id": {
- "type": "integer"
- },
- "imgUrl": {
- "type": "keyword"
- }
- }
- }
2.新建一个index05
3.在index05中添加一个article类型的自定义mapping结构
curl -XPUT http://10.42.60.249:9200/index05/_mapping/article -d '{"properties":{"content":{"type":"text","analyzer":"ik_max_word"},"title":{"type":"text","analyzer":"ik_max_word"},"id":{"type":"integer"},"imgUrl":{"type":"keyword"}}}'
4.index05的article类型中新增几个document
curl -XPUT -d '{"id":1,"title":"java编程思想","content":"中华人民共和国"}' http://10.42.60.249:9200/index05/article/1
5.验证是否使用了ik分词器将title中java编程思想分词计算为{java}{编程}{思想}
curl -XGET http://10.42.60.249:9200/index05/_search -d '{"query":{"term":{"title":"编程"}}}'
IK分词器安装成功
Elasticsearch个人心得笔记(四)相关推荐
- java分布式免费开源搜索引擎 Elasticsearch 详细学习笔记
网页右边,向下滑有目录索引,可以根据标题跳转到你想看的内容 如果右边没有就找找左边 此文是学习尚硅谷Elasticsearch课程的笔记 Elasticsearch 全文检索引擎 Lucene 是 A ...
- 美术网络计算机培训总结,【推荐】网络培训心得体会四篇
[推荐]网络培训心得体会四篇 心中有不少心得体会时,不妨将其写成一篇心得体会,让自己铭记于心,如此就可以提升我们写作能力了.怎样写好心得体会呢?以下是小编为大家收集的网络培训心得体会4篇,希望对大家有 ...
- ElasticSearch搜索引擎API笔记
ElasticSearch搜索引擎API笔记 1. pom.xml <dependency> <groupId>org.elasticsearch.client</g ...
- 2019苏州人工智能产业年会心得笔记
2019苏州人工智能产业年会心得笔记 目录 2019苏州人工智能产业年会心得笔记 核心总结: 第一天--暖场视频 第一天--上午两场主题演讲 从智能系统或智能体含义处理的角度看认知计算 海上目标智能信 ...
- MySQL高级学习笔记(四)
文章目录 MySQL高级学习笔记(四) 1. MySql中常用工具 1.1 mysql 1.1.1 连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 ...
- 【ElasticSearch】学习笔记(三)es的高级操作
[ElasticSearch]学习笔记(三)es的高级操作 文章目录 [ElasticSearch]学习笔记(三)es的高级操作 1. 数据聚合 1.1 聚合总类 1.2 DSL实现聚合 1.2.1 ...
- 数学建模日常心得笔记
本文章是个人学习数学建模的日常心得笔记 学习资料: B站视频: [零基础教程]老哥:数学建模算法.编程.写作和获奖指南全流程培训!_哔哩哔哩_bilibili 参考书籍:<MATLAB R201 ...
- C++ Primer第三章 心得笔记
之前的一章我本末倒置了,我看了一个大佬的此书笔记整理得很详细 很得体.我也想按照他的这种方法 在我学习和敲代码的时候进行记录,但是我发现为了记笔记而记笔记 这种方法使我很累.违背了记录分享交流的初衷. ...
- 数据结构与算法心得笔记——零起点学习(一)
从今天开始,我会跟大家分享一下本人学习数据结构和算法的心得体会,也算是今后的复习笔记,如有说错的地方还望各位大佬批评指正,我定虚心请教.同时也希望刚刚接触数据结构和算法的小白们能养成记笔记的习惯,等你 ...
- JAVA基础学习精简心得笔记整理
JAVA基础学习精简心得笔记整理 配置java环境变量 Java的运行过程 基本数据类型 引用数据类型 逻辑运算符 数组 方法重载 封装 继承 多态 多态的作用 单例设计模式 接口interface ...
最新文章
- easyui左侧导航菜单右侧载入百度地图项目框架
- 个推透传消息设置通知栏展示 ios_手机通知栏消息太多,这招教你关闭弹出消息,立刻清爽...
- todo已完成任务_重要主干街路已完成清雪任务
- matlab张量工具初步
- 融云聊天 php_thinkphp整合系列之融云即时通讯在线聊天
- Java 随心笔记7
- 单例模式 c# 1214
- 自然语言处理项目之新闻主题分类Python实现
- SWIFT显示底部的工具条
- 运行100万秒无错误!
- Linq的内部执行原理浅析
- 基于OpenCV的银行卡号识别系统实现(一)----- 银行卡号识别步骤
- PLC(S7-200)通过自由通讯口方式与变频器通讯(VLT)
- 测试网卡芯片型号的软件,查看电脑无线网卡型号_查看无线网卡芯片型号
- 基于社交网络分析算法(SNA)的反欺诈(二)
- 【多轮对话】多轮对话状态追踪技术综述
- oracle表空间权限赋予,Oracle 创建用户、表空间以及授予权限
- 致电电信索要公网ip地址,如何判断自己属于公网ip地址
- MuMu模拟器进行adb操作
- c语言比matlab慢很多,为什么我的Python脚本与Matlab相比速度太慢?
热门文章
- 【佐佑众工】每天早上起床, 我都要看一下福布斯排行榜
- matlab中mux和bus的区别
- 人类首张黑洞照片发布,像甜圈圈,顺便恭喜爱因斯坦...
- java获取微信小程序用户信息
- 乐高Studio打开Solidworks零件/装配体 (sw另存obj文件)
- 呼市中专计算机高考试题,呼和浩特市人教版物理高二选修2-1 6.3电子计算机同步练习...
- mysql sum total,从MySQL数据库获取Java中的Sum(total)
- DeFi 玩家收益农耕的五种形式
- Oracle-----综合练习:基础查询
- ES-elasticsearch