【Elasticsearch系列】文档的基本操作
文档的基本操作
一、添加
添加文档数据
POST /my_doc/_doc/1 -> {索引名}/_doc/{索引ID}(是指索引在es中的id,而不是这条记录的id,比如记录的id从数据库来是1001,并不是这个。如果不写,则自动生成一个字符串。建议和数据id保持一致> ){"id": 1001,"name": "imooc-1","desc": "imooc is very good, 慕课网非常牛!","create_date": "2019-12-24"
}{"id": 1002,"name": "imooc-2","desc": "imooc is fashion, 慕课网非常时尚!","create_date": "2019-12-25"
}{"id": 1003,"name": "imooc-3","desc": "imooc is niubility, 慕课网很好很强大!","create_date": "2019-12-26"
}{"id": 1004,"name": "imooc-4","desc": "imooc is good~!","create_date": "2019-12-27"
}{"id": 1005,"name": "imooc-5","desc": "慕课网 is 强大!","create_date": "2019-12-28"
}{"id": 1006,"name": "imooc-6","desc": "慕课是一个强大网站!","create_date": "2019-12-29"
}{"id": 1007,"name": "imooc-7","desc": "慕课网是很牛网站!","create_date": "2019-12-30"
}{"id": 1008,"name": "imooc-8","desc": "慕课网是很好看!","create_date": "2019-12-31"
}{"id": 1009,"name": "imooc-9","desc": "在慕课网学习很久!","create_date": "2020-01-01"
}
- 注:如果索引没有手动建立mappings,那么当插入文档数据的时候,会根据文档类型自动设置属性类型。这个就是es的动态映射,帮我们在index索引库中去建立数据结构的相关配置信息。
- “fields”: {“type”: “keyword”} 对一个字段设置多种索引模式,使用text类型做全文检索,也可使用keyword类型做聚合和排序
- “ignore_above” : 256 设置字段索引和存储的长度最大值,超过则被忽略
批量添加
POST /imooc-test/_doc/_bulk
{"index":{}}
{"id":1003,"name":"imooc-3","desc":"imoocisniubility,慕课网很好很强大!","create_date":"2019-12-26"}
{"index":{}}
{"id":1004,"name":"imooc-4","desc":"imoocisgood~!","create_date":"2019-12-27"}
{"index":{}}
{"id":1005,"name":"imooc-5","desc":"慕课网is强大!","create_date":"2019-12-28"}
{"index":{}}
{"id":1006,"name":"imooc-6","desc":"慕课是一个强大网站!","create_date":"2019-12-29"}
{"index":{}}
{"id":1007,"name":"imooc-7","desc":"慕课网是很牛网站!","create_date":"2019-12-30"}
{"index":{}}
{"id":1008,"name":"imooc-8","desc":"慕课网是很好看!","create_date":"2019-12-31"}
{"index":{}}
{"id":1009,"name":"imooc-9","desc":"在慕课网学习很久!","create_date":"2020-01-01"}
二、修改删除
删除文档
DELETE /my_doc/_doc/1
- 注:文档删除不是立即删除,文档还是保存在磁盘上,索引增长越来越多,才会把那些曾经标识过删除的,进行清理,从磁盘上移出去。
修改文档
局部
POST /my_doc/_doc/1/_update
{"doc": {"name": "123"}
}
全量替换
PUT /my_doc/_doc/1
{"id": 1001,"name": "imooc-1","desc": "imooc is very good, 慕课网非常牛!","create_date": "2019-12-24"
}
- 注:每次修改后version都会增加
三、查询
查询文档
查询
GET /index_demo/_doc/1
GET /index_demo/_doc/_search
查询结果
{"_index": "my_doc","_type": "_doc","_id": "2","_score": 1.0,"_version": 9,"_source": {"id": 1002,"name": "imooc-2","desc": "imooc is fashion","create_date": "2019-12-25"}
}
元数据
- _index:文档数据所属那个索引,理解为数据库的某张表即可。
- _id:文档数据的唯一标识,类似数据库中某张表的主键。可以自动生成或者手动指定。
- _score:查询相关度,是否契合用户匹配,分数越高用户的搜索体验越高。
- _version:版本号。
- _source:文档数据,json格式。
定制结果集
GET /index_demo/_doc/1?_source=id,name
GET /index_demo/_doc/_search?_source=id,name
判断文档是否存在
HEAD /index_demo/_doc/1
文档乐观锁控制 if_seq_no与if_primary_term
插入新数据
POST /my_doc/_doc
{"id": 1010,"name": "imooc-1010","desc": "imoocimooc!","create_date": "2019-12-24"
}
# 此时 _version 为 1
修改数据
POST /my_doc/_doc/{_id}/_update
{"doc": {"name": "慕课"}
}
# 此时 _version 为 2
模拟两个客户端操作同一个文档数据,_version都携带为一样的数值
# 操作1
POST /my_doc/_doc/{_id}/_update?if_seq_no={数值}&if_primary_term={数值}
{"doc": {"name": "慕课1"}
}# 操作2
POST /my_doc/_doc/{_id}/_update?if_seq_no={数值}&if_primary_term={数值}
{"doc": {"name": "慕课2"}
}
版本元数据
- _seq_no:文档版本号,作用同_version(相当于学生编号,每个班级的班主任为学生分配编号,效率要比学校教务处分配来的更加高效,管理起来更方便)
- _seq_no:文档版本号,作用同_version(相当于学生编号,每个班级的班主任为学生分配编号,效率要比学校教务处分配来的更加高效,管理起来更方便)
分词与内置分词器
什么是分词
把文本转换为一个个的单词,分词称之为analysis。es默认只对英文语句做分词,中文不支持,每个中文字都会被拆分为独立的个体。
- 英文分词:I study in
- 中文分词:我在慕课网学习
POST /_analyze
{"analyzer": "standard","text": "text文本"
}
POST /my_doc/_analyze
{"analyzer": "standard","field": "name","text": "text文本"
}
es内置分词器
- standard:默认分词,单词会被拆分,大小会转换为小写。
- simple:按照非字母分词。大写转为小写。
- whitespace:按照空格分词。忽略大小写。
- stop:去除无意义单词,比如the/a/an/is
- keyword:不做分词。把整个文本作为一个单独的关键词。
IK中文分词器
下载IK中文分词器
github:https://github.com/medcl/elasticsearch-analysis-ik/releases/
zip解压: unzip xxx.zip -d ik
POST /_analyze
{"analyzer": "ik_max_word","text": "上下班车流量很大"
}
自定义词库
1、 在{es}/plugins/ik/config下,创建:
vim custom.dic
2、 并且添加内容:
呵呵
骚年
3、配置自定义扩展词典
<entry key="ext_dict">custom.dic</entry>
4、重启
【Elasticsearch系列】文档的基本操作相关推荐
- 关于文档的基本操作---ElasticSearch
关于文档的基本操作(重点) 基本操作 添加数据 PUT /psz/user/1 {"name": "psz","age": 22," ...
- java openoffice 打印_java调用openoffice将office系列文档转换为PDF的示例方法
前导: 发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档. openoffice既有windows版本也 ...
- elasticsearch 路由文档到分片
路由文档到分片 当你索引一个文档,它被存储在单独一个主分片上.Elasticsearch是如何知道文档属于哪个分片的呢?当你创建一个新文档,它是如何知道是应该存储在分片1还是分片2上的呢? 进程不能是 ...
- ElasticSearch创建文档
ElasticSearch创建文档 创建文档有两种途径 直接在XcontentBuilder构建json数据,创建文档. // 描述json 数据/** {id:xxx, title:xxx, con ...
- ES关于文档的基本操作
关于文档的基本操作 基本操作 添加数据 PUT /quanzhan/user/1 {"name": "xzM","age": 18,&quo ...
- 关闭word_Word教程第2讲:文档的基本操作(含视频)
点击图片 1元抢购 Excel.Word.PPT全套课程 本讲目标: 关闭文档 掌握文档的创建 掌握保存文档的方法,以及加密保存的实现 掌握打开文档的方法,以及文档的打开方式 掌握插入文档的方法,了 ...
- 【elasticsearch】文档 CRUD 增删改查 以及 相关 参数
1.概述 转载:https://mp.weixin.qq.com/s/aOZnZpAC4c_dYkVW8DfNPg 在Elasticsearch中,文档(document)是所有可搜索数据的最小单位. ...
- 分布式搜索elasticsearch 索引文档的增删改查 入门
分布式搜索elasticsearch 索引文档的增删改查 入门 1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful ...
- Python实现自动化办公(三):Python对PPT文档的基本操作(python-pptx)
Python对PPT文档的基本操作 文章目录 Python对PPT文档的基本操作 一.pptx模块 1.官方文档 2.安装pptx模块 二.基本函数的使用方法 三.使用案例 1.修改ppt内容 2.写 ...
最新文章
- 阿里云 mysql主从_阿里云MySQL主从_Mater Slave_主备同步_MySQL主从_MySQL延迟-云栖社区-阿里云...
- 【itext学习之路】--1.创建一个简单的pdf文档
- flutter 生成文档_Flutter文件操作
- bzoj3527: [Zjoi2014]力 fft
- python读取文件乱码
- Spark-生产案例
- linux 制作分区镜像img文件
- 遍历JSON的三种方法
- 比方便面还方便~利用Python开发一个桌面小程序
- OceanBase-概述
- Typora怎么插入图片链接,并设置图片居中
- android app文件夹,android app文件目录结构
- 【论文阅读】Unifying Knowledge Graph Learning and Recommendation
- PS新手教程:轻松掌握四种扁平化设计风格
- Three.js显示物体的运动轨迹
- Python 83道经典练习题,含答案!
- python爬虫实践之爬取豆瓣高评分电影
- uIP无操作系统(裸机)移植
- [笔记][java 4 android] [028~034]接口、异常和I/O流
- 送给未来的自己10句话
热门文章
- ssh远程端口转发到本地_Linux SSH隧道或端口转发本地和远程端口的示例?
- 计算机应用电子表格题,计算机应用基础Ecel电子表格题目.doc
- 大数据聚类算法性能比较及实验报告
- WPF+WCF一步一步打造音频聊天室(一):概述
- 使用 Kube-capacity CLI 查看 Kubernetes 资源请求、限制和利用率
- html计算斐波那契数列,使用HTML5 Web Worker计算斐波那契数列
- GPS、谷歌、百度坐标系互相转换
- 伺服系统三环的控制频率
- Network Experiance - Cisco IP 电话 通过防火墙后无法注册
- julia fit 函数_Julia中的符号和绝对值函数