文档和索引是es中最基础也是最核心的概念,熟悉对掌握文档和索引的操作是进一步学习es的基础,其实,如果你有关系型数据库的知识,可以把索引类比为数据库中的数据表,而文档可以理解为数据表中的一行记录。前面的索引就是对表的创建和mapping就是对字段的定义,而接下来我们要做的就是添加数据行,也就是我们今天要说到的-----文档

 

  1. 添加文档
    先创建一个新的索引 index003,此时的mappings中为空。



    通过 postman 创建文档,连续添加了6条记录
    POST    http://10.0.0.220:9200/index003/_doc/1

    _index: 文档数据所属那个索引,理解为数据库的某张表即可。
    _type:文档数据属于哪个类型,新版本使用_doc。
    _id:文档数据的唯一标识,类似数据库中某张表的主键。可以自动生成或者手动指定。
    _score:查询相关度,是否契合用户匹配,分数越高用户的搜索体验越高。
    _version:版本号。
    _source:文档数据,json格式。

    ### 注意,最后一条,我并没有指定id,于是es直接生成了随机字符串
  2. 查看文档

    注:如果索引没有手动建立mappings,那么当插入文档数据的时候,会根据文档类型自动设置属性类型。这个就是es的动态映射,帮我们在index索引库中去建立数据结构的相关配置信息。
    ###“fields”: {“type”: “keyword”}    对一个字段设置多种索引模式,使用text类型做全文检索,也可使用keyword类型做聚合和排序
    ###“ignore_above” : 256    设置字段索引和存储的长度最大值,超过则被忽略

    在es-head中,点击数据浏览即可查看每条索引下的数据(文档)
    同时我们可以通过下面的字段进行检索对应的数据,目前只能支持检索一个中文字符。


    ####POSTMan 查询文档
    根据es_Id查询一条数据
    GET    http://10.0.0.220:9200/index003/_doc/{_id}


    根据条件查询es_Id 下的某一个属性
    GET    http://10.0.0.220:9200/index003/_doc/{_id}?_source=name
    GET    http://10.0.0.220:9200/index003/_doc/{_id}?_source=name,today   ##多个条件




    查询当前索引下的所有文档
    GET    http://10.0.0.220:9200/index003/_doc/_search


    根据条件查询当前索引下的符合条件的文档
    GET    http://10.0.0.220:9200/index003/_doc/_search?_source=name
    GET    http://10.0.0.220:9200/index003/_doc/_search?_source=name,id    ### 多条件查询



    查询某一个文档是否存在(如果存在,状态码为200,不存在则404)
    HEAD    http://10.0.0.220:9200/index003/_doc/1


     
  3. 删除文档(并不是物理删除,而是逻辑删除,当文档增多时,ES才会选择被动物理删除),每次删除或修改“_version”都会累加。
    DELETE    http://10.0.0.220:9200/index003/_doc/{_id}


     
  4. 修改文档
    局部修改
    POST    http://10.0.0.220:9200/index003/_doc/{_id}/_update



    全量修改
    PUT    http://10.0.0.220:9200/index003/_doc/{_id}



    通过版本号修改:文档乐观锁控制 if_seq_no与if_primary_term
    老版本中
    ,如果想要通过版本号来修改数据,则使用:
    POST    http://10.0.0.220:9200/index003/_doc/1?version=2

    但是新版本中就要使用文档乐观锁控制 if_seq_no与if_primary_term
    POST    http://10.0.0.220:9200/index003/_doc/1?if_seq_no={数值}&if_primary_term={数值}

    以下是要修改的数据:"_seq_no": 8, "_primary_term": 1,

    修改后,_seq_no也会像version一样每次修改数值都累加

最后修改于 2020-04-01 13:30:43
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇