05 ES 文档 Document 的处理

创建Mapping

POST http://localhost:9200/itest/_mapping

{
  "properties": {
    "jid": {
      "type": "long"
    },
    "title": {
      "type": "text"
    },
    "company": {
      "type": "text"
    },
    "salary": {
      "type": "integer_range"
    },
    "city": {
      "type": "keyword"
    },
    "description": {
      "type": "text"
    }
  }
}

创建新文档

利用_create接口,可以新增Document,书写实例:

POST http://localhost:9200/job/_create/1

其中/1代表创建文档的id=1,对于重复的id,ES将报错

请求体

{
  "jid": 1,
  "title": "Java开发工程师",
  "company": "北京威米信科技有限公司",
  "salary": {
    "gte": 9000,
    "lte": 15000
  },
  "city": "北京",
  "description": "1、参与软件的架构设计、流程设计、数据库设计等工作;2、参与软\r\n件相关技术文档的编写;3、完成开发框架搭建;4、根据项目/产品需要,开展技术攻关工作,\r\n确定技术路线;5、配合项目经理完成项目建设任务。任职资格:1、本科 以上学历,精通Java\r\n语言开发;2、熟练运用主流开源框架,如SSH,SpringMVC,MyBatis等;3、熟悉基于Oracl\r\ne或者MySQL数据库的设计和开发,熟悉基于Ehcache,Redis,MongoDB的设计和开发;4、熟\r\n悉微服务spring boot、spring cloud、dubbo等,对业务中台、数据中台的设计思想深入理\r\n解;5、熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息、负载均衡等机制和实现;\r\n6、具有Vue等前端技术经验者优先。7、对前后端分离,分库分表等技术有实际操作经验;8、\r\n熟悉docker、kubernetes等。9、熟悉敏捷开发和项目管理经验经验者;10、熟练使用git,s\r\nvn。"
}

响应结果:

{
    "_index": "itest",#索引名
    "_type": "_doc",#类型,固定为_doc说明是文档
    "_id": "1",#记录的id号
    "_version": 1,#版本号,当记录每产生一次记录都会修改
    "result": "created",#created代表新增操作 , #updated代表更新
    "_shards": { #分片信息
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 0, #严格递增的顺序号,每个文档一个,Shard级别严格递增,保证后
写入的Doc的_seq_no大于先写入的Doc的_seq_no。
    "_primary_term": 1#_primary_term也和_seq_no一样是一个整数,每当Primary
Shard发生重新分配时,比如重启,Primary选举等,_primary_term会递增1。
}

重建文档(推荐)

POST http://localhost:9200/itest/_doc/1

{
  "jid": 1,
  "title": "Java开发工程师",
  "company": "北京威米信科技有限公司",
  "salary": {
    "gte": 9001,
    "lte": 15000
  },
  "city": "北京",
  "description": "1、参与软件的架构设计、流程设计、数据库设计等工作;2、参与软\r\n件相关技术文档的编写;3、完成开发框架搭建;4、根据项目/产品需要,开展技术攻关工作,\r\n确定技术路线;5、配合项目经理完成项目建设任务。任职资格:1、本科 以上学历,精通Java\r\n语言开发;2、熟练运用主流开源框架,如SSH,SpringMVC,MyBatis等;3、熟悉基于Oracl\r\ne或者MySQL数据库的设计和开发,熟悉基于Ehcache,Redis,MongoDB的设计和开发;4、熟\r\n悉微服务spring boot、spring cloud、dubbo等,对业务中台、数据中台的设计思想深入理\r\n解;5、熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息、负载均衡等机制和实现;\r\n6、具有Vue等前端技术经验者优先。7、对前后端分离,分库分表等技术有实际操作经验;8、\r\n熟悉docker、kubernetes等。9、熟悉敏捷开发和项目管理经验经验者;10、熟练使用git,s\r\nvn。"
}

返回响应:

{
    "_index": "itest",
    "_type": "_doc",
    "_id": "1",
    "_version": 2,
    "result": "updated",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 1,
    "_primary_term": 1
}

获取文档

http://localhost:9200/itest/_doc/1

{
    "_index": "itest",
    "_type": "_doc",
    "_id": "1",
    "_version": 2,
    "_seq_no": 1,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "jid": 1,
        "title": "Java开发工程师",
        "company": "北京威米信科技有限公司",
        "salary": {
            "gte": 9001,
            "lte": 15000
        },
        "city": "北京",
        "description": "1、参与软件的架构设计、流程设计、数据库设计等工作;2、参与软\r\n件相关技术文档的编写;3、完成开发框架搭建;4、根据项目/产品需要,开展技术攻关工作,\r\n确定技术路线;5、配合项目经理完成项目建设任务。任职资格:1、本科 以上学历,精通Java\r\n语言开发;2、熟练运用主流开源框架,如SSH,SpringMVC,MyBatis等;3、熟悉基于Oracl\r\ne或者MySQL数据库的设计和开发,熟悉基于Ehcache,Redis,MongoDB的设计和开发;4、熟\r\n悉微服务spring boot、spring cloud、dubbo等,对业务中台、数据中台的设计思想深入理\r\n解;5、熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息、负载均衡等机制和实现;\r\n6、具有Vue等前端技术经验者优先。7、对前后端分离,分库分表等技术有实际操作经验;8、\r\n熟悉docker、kubernetes等。9、熟悉敏捷开发和项目管理经验经验者;10、熟练使用git,s\r\nvn。"
    }
}

获取多份文档

POST http://localhost:9200/itest/_doc/_mget

Body

{
    "docs": [
        {
            "_index": "itest",
            "_type": "_doc",
            "_id": "1",
            "_version": 2,
            "_seq_no": 1,
            "_primary_term": 1,
            "found": true,
            "_source": {
                "jid": 1,
                "title": "Java开发工程师",
                "company": "北京威米信科技有限公司",
                "salary": {
                    "gte": 9001,
                    "lte": 15000
                },
                "city": "北京",
                "description": "1、参与软件的架构设计、流程设计、数据库设计等工作;2、参与软\r\n件相关技术文档的编写;3、完成开发框架搭建;4、根据项目/产品需要,开展技术攻关工作,\r\n确定技术路线;5、配合项目经理完成项目建设任务。任职资格:1、本科 以上学历,精通Java\r\n语言开发;2、熟练运用主流开源框架,如SSH,SpringMVC,MyBatis等;3、熟悉基于Oracl\r\ne或者MySQL数据库的设计和开发,熟悉基于Ehcache,Redis,MongoDB的设计和开发;4、熟\r\n悉微服务spring boot、spring cloud、dubbo等,对业务中台、数据中台的设计思想深入理\r\n解;5、熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息、负载均衡等机制和实现;\r\n6、具有Vue等前端技术经验者优先。7、对前后端分离,分库分表等技术有实际操作经验;8、\r\n熟悉docker、kubernetes等。9、熟悉敏捷开发和项目管理经验经验者;10、熟练使用git,s\r\nvn。"
            }
        },
        {
            "_index": "itest",
            "_type": "_doc",
            "_id": "2",
            "found": false
        }
    ]
}

更新文档(不建议使用)

不再进行演示

删除文档

DELETE http://localhost:9200/itest/_doc/1

{
    "_index": "itest",
    "_type": "_doc",
    "_id": "1",
    "_version": 3,
    "result": "deleted",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 2,
    "_primary_term": 1
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 安装、运行ES 通过官网下载:https://www.elastic.co/downloads/elasticse...
    Kevin_Luo阅读 1,207评论 0 5
  • 为什么用elasticsearch 在引入elasticsearch前,我们的数据一般都存储在mysql上,所有的...
    递归宇宙阅读 1,041评论 0 0
  • 一、ElasticSearch概述 1. 概念阐述 ES(ElasticSearch)是一款非常强大的开源搜索引擎...
    WardWu阅读 1,539评论 0 0
  • 1.倒排索引原理图 原理图: 2.指定分片数,分片副本数创建索引 (未指定情况下使用默认值) # 指定分片数(...
    猫头木有鹰阅读 324评论 0 0
  • Elasticsearch 7.x 简介 Elasticsearch是一个开源,基于Apache Lucene库构...
    方穹轩阅读 1,851评论 1 4