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"}
    

      

  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    108. Convert Sorted Array to Binary Search Tree
    111. Minimum Depth of Binary Tree
    49. Group Anagrams
    使用MALTAB标定实践记录
    442. Find All Duplicates in an Array
    522. Longest Uncommon Subsequence II
    354. Russian Doll Envelopes
    opencv 小任务3 灰度直方图
    opencv 小任务2 灰度
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/13062189.html
Copyright © 2011-2022 走看看