ElasticSearch(三):ES单机版本基本操作之删除,修改,插入
1. 创建索引
1.1 直接创建索引
可以直接使用head插件创建索引,指定分片数和备份数即可。如下图:



1.2 创建结构化索引
上图创建的索引,点开索引信息,mapping是空的,表示该索引的字段并没有指定,我们可以在创建索引的时候直接指定其字段名来创建。
使用POSTMAN进行创建(任何工具都行,习惯)
请求路径:localhost:9200/book --》ES服务的ip:端口/要创建的索引名,请求方法:PUT
请求体:
{
"settings":{
"number_of_shards":5, //分片数
"number_of_replicas":1 //备份数
},
//映射文件
"mappings":{
//类型名
"novel":{
//文档的所有字段以及类型
"properties":{
"name":{
"type":"text"
},
"author":{
"type":"keyword"
},
"word_count":{
"type":"integer"
},
"publish_date":{
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss || yyyy-MM-dd" //日期格式化允许的类型
}
}
}
}
}
插入结果如下:表示索引创建成功
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "book"
}
关于结构化索引和非结构化索引的区别:
结构化索引,类似MySQL,我们会对索引结构做预定义,包括字段名,字段类型等;那么,非结构化索引,就类似Mongo,索引结构未知,根据具体的数据来update索引的mapping。那么如何选择两种索引呢,还是跟具体的使用场景有关,结构化相比非结构化,更易优化,性能好些,非结构化相较灵活,只是频繁update索引mapping会有一定的性能损耗。
重点:需要特别特别注意的是:如果你的索引后期要修改,那么你只能重建一个你要修改成的索引,然后将数据复制到新的索引中,代码如下(亲测可用)
http://localhost:9200/_reindex
{
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}
2. 插入数据
2.1 指定id插入
需要注意的是:指定id插入,使用的方法时PUT,路径是:服务ip:端口/索引名/类型名/id,过程及结果如下


2.2 不指定id插入
需要特别注意的是:当不使用id插入的时候,请求方法必须是:POST,并且路径不能指定id,插入成功后会返回id。过程以及结果如下


关于插入数据需要注意的是:
当你创建的索引是非结构化的索引的时候,你可以随意插入你想要的字段作为属性。并且你每次插入的字段值可以是不一致的,索引会自动更新mapping,来适应数据。但是每次插入会耗费性能来做这些事情。
当你创建的索引是结构化的索引的时候,你如果插入的数据不符合你创建的mapping,那么也会自动更新mapping来适应你添加的数据,不会出现添加不上数据的情况。但是不建议这么做。
3. 修改数据
3.1 直接修改doc数据
需要注意的是: 方法时POST,路径为:ES服务ip:端口/要修改的数据的id/_update,并且,需要再修改的json中,使用doc进行修改,如下图:


3.2 使用内置脚本修改(可以对数据进行计算)


需要注意的是:方法时POST,路径跟上面一致,但是请求体的时候,使用的是script,并且里面的字段是固定的(应该是),inline字段的值时可以进行计算的。
3.3 使用内置脚本并制定参数进行修改


需要注意的是:inline中的参数必须和params中的参数对应才可!
4 删除数据
直接使用delete请求,指定索引,类型,id即可删除。


查询,是ElasticSearch的重中之重,所以会单独更新一篇进行详细解释。
ElasticSearch(三):ES单机版本基本操作之删除,修改,插入的更多相关文章
- (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作
上午写了下单向循环链表的程序,今天下午我把双向链表的程序写完了.其实双向链表和单向链表也是有很多相似的地方的,听名字可以猜到,每个节点都包含两个指针,一个指针指向上一个节点,一个指针指向下一个节点.这 ...
- ES 08 - 创建、查看、修改、删除、关闭Elasticsearch的index
目录 1 创建index(配置mapping[映射]) 2 查看index 3 修改index 4 删除index 5 打开/关闭index 6 常见问题及解决方法 index相当于RDBMS(关系型 ...
- 简单操作elasticsearch(es版本7.6)
简单操作elasticsearch(es版本7.6) es 官方文档 https://www.elastic.co/guide/index.html 简单操作elasticsearch主要是指管理索引 ...
- [数据库]漫谈ElasticSearch关于ES性能调优几件必须知道的事(转)
ElasticSearch是现在技术前沿的大数据引擎,常见的组合有ES+Logstash+Kibana作为一套成熟的日志系统,其中Logstash是ETL工具,Kibana是数据分析展示平台.ES让人 ...
- C# 如何使用 Elasticsearch (ES)
Elasticsearch简介 Elasticsearch (ES)是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好 ...
- 漫谈ElasticSearch关于ES性能调优几件必须知道的事
lasticSearch是现在技术前沿的大数据引擎,常见的组合有ES+Logstash+Kibana作为一套成熟的日志系统,其中Logstash是ETL工具,Kibana是数据分析展示平台.ES让人惊 ...
- 手把手教你Spring Boot2.x整合Elasticsearch(ES)
文末会附上完整的代码包供大家下载参考,码字不易,如果对你有帮助请给个点赞和关注,谢谢! 如果只是想看java对于Elasticsearch的操作可以直接看第四大点 一.docker部署Elastics ...
- elasticsearch系列一:elasticsearch(ES简介、安装&配置、集成Ikanalyzer)
一.ES简介 1. ES是什么? Elasticsearch 是一个开源的搜索引擎,建立在全文搜索引擎库 Apache Lucene 基础之上 用 Java 编写的,它的内部使用 Lucene 做索引 ...
- elasticsearch(ES)日志迁移
=============================================== 2018/7/29_第1次修改 ccb_warlock == ...
随机推荐
- 雷林鹏分享:C# 预处理器指令
C# 预处理器指令 预处理器指令指导编译器在实际编译开始之前对信息进行预处理. 所有的预处理器指令都是以 # 开始.且在一行上,只有空白字符可以出现在预处理器指令之前.预处理器指令不是语句,所以它们不 ...
- windows 命令巧用(持续更新)
netstat -ano netstat -anvb netstat -s -p [tcp|udp|ip|icmp] # 关闭/打开防火墙 netsh firewall set opmode disa ...
- LeetCode--110--平衡二叉树
问题描述: 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,n ...
- DOM文档对象模型
- MySQL解析过程、执行过程
转载:https://student-lp.iteye.com/blog/2152601 https://www.cnblogs.com/cdf-opensource-007/p/6502556.ht ...
- 简话Angular 01 初识Angular 数据绑定
1. Angular有哪些突出优点 1) MVC 基于Html-Javascript 2) 依赖注入 3) 数据双向绑定,响应式页面设计 4) 模块化,自定义指令 2. 简话数据绑定 1) 代码: & ...
- @SpringBootApplication的使用
之前用户使用的是3个注解注解他们的main类.分别是@Configuration,@EnableAutoConfiguration,@ComponentScan.由于这些注解一般都是一起使用,spri ...
- sublime text 2 php 语法错误检查
使用sublime text 2 编写php程序的时候,保存代码的时候,直接检查出语法错误,有利于提高效率. 1.安装sublime text 2 package menu : preferences ...
- Linq的简介和基础知识学习
学习LINQ之前,我们要知道LINQ是干什么,解决什么问题的,怎样学习? 一.LINQ简介 1.什么是LINQ? 什么是LINQ?LINQ中文翻译为语言集成查询(Language Integrated ...
- 微信小程序中的bindTap事件(微信小程序开发QQ群:604788754)
bindTap对应的绑定事件, 第一个:wx.navigateTo wx.navigateTo({ url:"../content/content" }) 第二个:wx.redir ...