ElasticSearch(三):ES单机版本基本操作之删除,修改,插入

摘要:
4删除数据直接使用delete请求,指定索引,类型,id即可删除。查询,是ElasticSearch的重中之重,所以会单独更新一篇进行详细解释。

1. 创建索引

1.1 直接创建索引

可以直接使用head插件创建索引,指定分片数和备份数即可。如下图:

ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第1张

ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第2张ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第3张

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,过程及结果如下

ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第4张ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第5张

2.2 不指定id插入

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

ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第6张ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第7张

关于插入数据需要注意的是:

当你创建的索引是非结构化的索引的时候,你可以随意插入你想要的字段作为属性。并且你每次插入的字段值可以是不一致的,索引会自动更新mapping,来适应数据。但是每次插入会耗费性能来做这些事情。

当你创建的索引是结构化的索引的时候,你如果插入的数据不符合你创建的mapping,那么也会自动更新mapping来适应你添加的数据,不会出现添加不上数据的情况。但是不建议这么做。

3. 修改数据

3.1 直接修改doc数据

需要注意的是: 方法时POST,路径为:ES服务ip:端口/要修改的数据的id/_update,并且,需要再修改的json中,使用doc进行修改,如下图:

ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第8张ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第9张

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

ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第10张ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第11张

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

3.3 使用内置脚本并制定参数进行修改

ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第12张ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第13张

需要注意的是:inline中的参数必须和params中的参数对应才可!

4 删除数据

直接使用delete请求,指定索引,类型,id即可删除。

ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第14张ElasticSearch(三):ES单机版本基本操作之删除,修改,插入第15张

查询,是ElasticSearch的重中之重,所以会单独更新一篇进行详细解释。

免责声明:文章转载自《ElasticSearch(三):ES单机版本基本操作之删除,修改,插入》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇小型C/C++项目的makefile编写L1-039. 古风排版下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

FastDFS文件存储方案

FastDFS介绍 用c语言编写的一款开源的轻量级分布式文件系统。 功能包括:文件存储、文件访问(文件上传、文件下载)、文件同步等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。 可以帮助我们搭建一套高性能的文件服务...

用Nexus做Maven私服全攻略

Nexus简介 Nexus是Sonatype推出的强大Maven仓库管理器产品,要比以前TSS上介绍的Artifactory要好使用的多,也是一个拆箱即用的Java App,内嵌Jetty容器和Java Wrapper做Windows服务,安装简单到解压然后双击install即可。更详细的帮助手册请上官方网站查看,这里推荐一个翻译中的书籍——《Maven权...

线上日志集中化可视化管理:ELK

本文来自网易云社区作者:王贝 为什么推荐ELK: 当线上服务器出了问题,我们要做的最重要的事情是什么?当需要实时监控跟踪服务器的健康情况,我们又要拿什么去分析?大家一定会说,去看日志,去分析日志。是的,日志对于服务器开发人员来讲是最亲密的伙伴了,基本上每天都会去看各种类型的海量的日志去定位问题,去做统计分析等等。最常见的查看日志的情况,比如线上出了bug,...

elasticsearch 性能调优

所有的修改都可以在elasticsearch.yml里面修改,也可以通过api来修改。推荐用api比较灵活 1.不同分片之间的数据同步是一个很大的花费,默认是1s同步,如果我们不要求实时性,我们可以执行如下: $ curl -XPUT 'http://localhost:9200/twitter/' -d '{ "settings" : {...

ElasticSearch 定时批量删除N天前的数据

描述: 之前我已经完成了使用ElasticSearch、kibana、filebeat、三个工具完成分布式集群收集 分布在各个ip地址上的微服务日志,这样就可以统一的在一个服务器上查看了所有的微服务产生的日志了,避免了一个个通过工具远程linux服务器去查看日志,极大提高了日志查看分析的效率了。当时目前我只是完成收集和查看所有日志,那么时间一长我们就会遇到...

Elasticsearch logstsh同步mysql数据到ES中

1、准备: 1) 启动前面搭建的ES集群, 192.168.127.130,192.168.127.128,192.168.127.129 2) 准备要同步的数据库和数据 数据库所在的服务器IP为192.168.1.104 数据库端口为3306 数据库名shop,表名items items的表结构如下 items表的数据如下 这里有两条数据,实际环境会...