Elasticsearch文档的基本操作--增删改查

一、增加操作

如果索引没有手动建立mapping,那么插入文档数据时,会根据文档类型自动设置属性类型。这个就是es动态映射,帮我们在index索引库中去建立数据结构的相关配置。
  • 在可视化工具中建一个索引命名为 my_doc

  • 手动添加文档数据
在postman里面发送post请求到http://192.168.2.223:9200/my_doc/_doc/1
注意:my_doc为索引名、_doc为文档类型、1为为文档起的id唯一编号(如果不指定系统会为每条数据自动分配一个)
添加数据:
http://192.168.2.223:9200/my_doc/_doc/1
{
"id": 1001,
"name": "zhouhong-1",
"desc": "zhouhong is my good fridend!",
"create_date": "2021-02-19"
}
http://192.168.2.223:9200/my_doc/_doc/2
{
"id": 1002,
"name": "zhouhong-2",
"desc": "zhouhong 是一个好人",
"create_date": "2021-02-18"
}
http://192.168.2.223:9200/my_doc/_doc/3
{
"id": 1003,
"name": "zhouhong-3",
"desc": "zhouhong 真的是一个好人",
"create_date": "2021-02-18"
}
http://192.168.2.223:9200/my_doc/_doc/4
{
"id": 1004,
"name": "zhouhong-4",
"desc": "zhouhong is her friend",
"create_date": "2021-02-18"
}
http://192.168.2.223:9200/my_doc/_doc/5
{
"id": 1005,
"name": "zhouhong-5",
"desc": "zhouhong is 好人",
"create_date": "2021-02-18"
}
http://192.168.2.223:9200/my_doc/_doc/6
{
"id": 1006,
"name": "zhouhong-6",
"desc": "zhouhong is realy good man",
"create_date": "2021-02-18"
}
  • 检查是否添加成功

二、删除

直接调用 http://192.168.2.223:9200/my_doc/_doc/6 发送DELETE请求既可
注意:这里的删除操作不是真正的删除,只是逻辑上的删除(添加标识符)
ES属于被动删除,只有在磁盘满了的时候会被动删除。

三、修改请求

直接调用:http://192.168.2.223:9200/my_doc/_doc/6/_update 发送POST请求
入参:
{
    "doc": {
        "name" "周红"
    }
}

四、查询

  • 根据文档id查询
直接发送GET请求http://192.168.2.223:9200/my_doc/_doc/6
相当于:select * from my_doc where _id = 6
结果:

{
    "_index": "my_doc",
    "_type": "_doc",
    "_id": "6",
    "_version": 2,
    "_seq_no": 17,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "id": 1006,
        "name": "zhouhong-6",
        "desc": "zhouhong is realy good man",
        "create_date": "2021-02-18"
    }
}
_index:文档数据所属那个索引,理解为数据库的某张表即可。
_type:文档数据属于哪个类型,新版本使用_doc。
_id:文档数据的唯一标识,类似数据库中某张表的主键。可以自动生成或者动指定。
_score:查询相关度,是否契合用户匹配,分数越高用户的搜索体验越高。
_version:版本号。
_source:文档数据,json格式。
  • 查询所有
相当于:select * from my_doc
调用 http://192.168.2.223:9200/my_doc/_doc/_search 发送GET请求
  • 查询部分数据
相当于: select id, name from my_doc where _id = 2
GET请求http://192.168.2.223:9200/my_doc/_doc/1?source=id,name
  • 判断当前索引是否存在文档,以下方式比较规范
发送HEAD请求 http://192.168.31.183:9200/my_doc/_doc/2 根据相应状态码HttpStatusCode:200,则存在,404则不存在
比使用GET查询请求判断文档是否存在效率更高

 

 


已有 0 条评论

    欢迎您,新朋友,感谢参与互动!