zoukankan      html  css  js  c++  java
  • Elastic Stack:es 文档document入门

    一.模板自带字段

    当我们对文档操作时,前三个字段总是不变的

     三个字段的含义:

    _index:

         含义:此文档属于哪个索引

         原则:类似数据放在一个索引中。数据库中表的定义规则。如图书信息放在book索引中,员工信息放在employee索引中。各个索引存储和搜索时互不影响。(不同数据放到不同索引中)

         定义规则:英文小写。尽量不要使用特殊字符。    

    _type:

        含义:类别。

        注意:以后的es9将彻底删除此字段,所以当前版本在不断弱化type。不需要关注。见到_type都为doc。

    _id:

        含义:文档的唯一标识。就像表的id主键。结合索引可以标识和定义一个文档。

        生成:手动(put /index/_doc/id)、自动

     二.文档id的生成方式

    1.手动生成:put /index/_doc/id

    2.自动生成:put/index/_doc

    生成的是20个字符的id,分布式唯一id,base64编码,GUID算法生成。

     三.定制返回字段

    语法:GET /index/type/id?_source_includes=field1,field2...

    GET  /book/_doc/1?__source_includes=name,price   
    

     四.文档的替换与删除

    1.全量替换:PUT /index/type/id

    执行两次,返回结果中版本号(_version)在不断上升。此过程为全量替换。

    实质:旧文档的内容不会立即删除,只是标记为deleted。适当的时机,集群会将这些文档删除。 

    2.为防止覆盖原有数据,我们在新增时,设置为强制创建,不会覆盖原有文档。

    语法:PUT /index/type/id/_create

    3.删除文档

    DELETE /index/_doc/id

    实质:旧文档的内容不会立即删除,只是标记为deleted。适当的时机,集群会将这些文档删除。

    五.局部替换

    原理:1.es内部获取旧文档

               2.将传来的文档field更新到旧数据(内存)

               3.将就文档标记为delete

          4.创建新文档

    post /index/type/id/_update 
    {
       "doc": {
          "field":"value"
       }
    }
    

     六.批量查询

    post /index/_doc/_search
    {
        "query": {
            "ids" : {
                "values" : [id1, id2...]
            }
        }
    }
    

    七.批量增删改 bulk

    POST /_bulk
    {"action": {"metadata"}}
    {"data"}
    

      

  • 相关阅读:
    Docker 笔记
    Win10 Docker 安装使用
    golang struct转map
    Golang 中错误与异常需要重新认识
    Golang 中三种读取文件发放性能对比
    GoLang中如何使用多参数属性传参
    GoLang中flag标签使用
    Windows本地搭建Edusoho环境
    edusoho上传视频弹出abort之解决方案
    XAMPP启动mysql遇到的问题
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/13062189.html
Copyright © 2011-2022 走看看