zoukankan      html  css  js  c++  java
  • 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的重中之重,所以会单独更新一篇进行详细解释。

  • 相关阅读:
    CxImage图像库的使用
    CxImage动态加载图片(判断图片文件类型)
    实现一个类似360的button
    cximage功能简介
    开源图像处理软件代码
    MFC + CxImage 实现自绘半透明按钮
    VC 下加载 JPG / JPEG / GIF / PNG 图片最简单的方法
    时序数据库InfluxDB:简介及安装
    学习springboot整合mybatis并编写测试类
    Mybatis-Plus使用全解
  • 原文地址:https://www.cnblogs.com/chenmc/p/9510514.html
Copyright © 2011-2022 走看看