美文网首页
Elasticsearch实战 第三章 索引、更新和删除数据

Elasticsearch实战 第三章 索引、更新和删除数据

作者: kaiker | 来源:发表于2021-11-27 16:49 被阅读0次

    1、使用映射来定义各种文档

    类型包含了映射中每个字段的定义。映射包括了该类型文档中可能出现的所有字段。

    使用类型划分同一索引中的数据

    检索和定义映射

    curl -XPUT 'localhost:9200/get-together/_mapping/new-events' -d'{
      "new-events":{
        "properties": {
          "host": {"type": "string"}
        }
      }
    }'
    

    扩展现有映射

    • 如果需要修改现有映射的字段类型,需要将类型中的数据移除、设置新的映射、再次索引所有数据

    2、用于定义文档字段的核心类型

    核心字段类型

    3、数组和多字段

    数组

    curl -XPUT 'localhost:9200/blog/posts/1' -d '{
      "tags":['first', 'initail']
    }'
    
    • tags字段会被定义成字符串型

    多字段

    • 字段里可以再嵌套字段

    4、预定义字段

    • 预定义字段总是以下划线开头
    • 是一些ES默认就有的字段,可以实现一些功能

    存储和搜索文档

    • _source 按照原有的格式来存储原有的文档
    • 可以通过指定field来仅返回某个字段 curl -XGET 'localhost:9200/get-together/group/1?pretty&fields=name'
    • _all是索引所有的信息,不会考虑是哪个字段匹配成功,返回命中文档

    识别文档

    • _uid字段可唯一标识一篇文档,由_id和_type组成

    5、更新现有文档

    更新文档
    • 检索现有文档
    • 进行制定修改
    • 删除旧文档

    使用更新API

    • 发送部分文档
    curl -XPOST 'localhost:9200/get-together/group/2_update' -d '{
      "doc": {
        "organizer": "Roy"
      }
    }'
    
    • 如果文档不存在,可以upsert来创建上不存在的文档
    curl -XPOST 'localhost:9200/get-together/group/2_update' -d '{
      "doc": {
        "organizer": "Roy"
      },
      "upsert": {
        "name": "ES Denver",
        "organizer": "roy"
      }
    }'
    
    • 脚本更新,可以使用ctx._source来引用某个指定字段,可以在params下指定变量
    curl -XPOST 'localhost:9200/online-shop/shirts/1' -d '{
      "caption":"learning es",
      "price":15 
    }'
    curl -XPOST 'localhost:9200/online-shop/shirts/1_update' -d '{
      "script":"ctx._source.price += price_diff",
      "params": {
        "price_diff": 10
       }
    }'
    

    通过版本实现并发控制

    • 更新操作进行重新索引时就会检查版本号与现有的版本是否一致,不一致会更新失败,更新成功后会更新版本号
    版本控制

    6、删除数据

    删除文档

    • 通过id删除
    • 删除映射类型
    • 根据条件批量删除
    // 删除类型等同于查询类型字段名称 = xxx的所有文档然后删除,会比较慢
    curl -XDELETE 'localhost:9200/online-shop/shirts'
    
    curl -XDELETE 'localhost:9200/get-together/_query?q=elasticsearch'
    

    关闭索引

    • 关闭之后就无法通过ES读取和写入其中的数据
    curl -XPOST 'localhost:9200/online-shop/_close'
    curl -XPOST 'localhost:9200/online-shop/_open'
    

    相关文章

      网友评论

          本文标题:Elasticsearch实战 第三章 索引、更新和删除数据

          本文链接:https://www.haomeiwen.com/subject/dfxqxrtx.html