文档和索引是es中最基础也是最核心的概念,熟悉对掌握文档和索引的操作是进一步学习es的基础,其实,如果你有关系型数据库的知识,可以把索引类比为数据库中的数据表,而文档可以理解为数据表中的一行记录。前面的索引就是对表的创建和mapping就是对字段的定义,而接下来我们要做的就是添加数据行,也就是我们今天要说到的-----文档。
- 添加文档
先创建一个新的索引 index003,此时的mappings中为空。
通过 postman 创建文档,连续添加了6条记录POST http://10.0.0.220:9200/index003/_doc/1
_index: 文档数据所属那个索引,理解为数据库的某张表即可。
_type:文档数据属于哪个类型,新版本使用_doc。
_id:文档数据的唯一标识,类似数据库中某张表的主键。可以自动生成或者手动指定。
_score:查询相关度,是否契合用户匹配,分数越高用户的搜索体验越高。
_version:版本号。
_source:文档数据,json格式。
### 注意,最后一条,我并没有指定id,于是es直接生成了随机字符串
- 查看文档
注:如果索引没有手动建立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
- 删除文档(并不是物理删除,而是逻辑删除,当文档增多时,ES才会选择被动物理删除),每次删除或修改“_version”都会累加。
DELETE http://10.0.0.220:9200/index003/_doc/{_id}
- 修改文档
局部修改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_termPOST 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
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

