Elasticsearch基本操作之文档操作

这篇具有很好参考价值的文章主要介绍了Elasticsearch基本操作之文档操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文来说下Elasticsearch基本操作之文档操作


文档概述

文档概述

  • 在创建好索引的基础上来创建文档,并添加数据。
  • 这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式。

创建文档示例

创建文档(生成随机id)

在 apifox 中,向 ES 服务器发 POST 请求 :http://localhost:9200/person/_doc,请求体内容为:

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

服务器响应结果如下:

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

此处发送请求的方式必须为 POST,不能是 PUT ,否则会发生错误

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

服务器响应结果解释

{
    "_index"【索引】: "person",
    "_type"【 类型-文档 】: "_doc",
    "_id"【唯一标识】: "Qc8r54wBBLem2BEmnNus",
    #可以类比为 MySQL 中的主键,随机生成
    "_version"【版本】: 1,
    "result"【结果】: "created",#这里的 create 表示创建成功
    "_shards"【分片】: {
        "total"【分片 - 总数】: 2,
        "successful"【分片 - 成功】: 1,
        "failed"【分片 - 失败】: 0
    },
    "_seq_no": 1,
    "_primary_term": 1
}
  • 注意:上面的数据创建后,由于没有指定数据唯一性标识(ID),默认情况下,ES 服务器会随机生成一个。

创建文档(自定义唯一性标识)

在 apifox 中,向 ES 服务器发 POST 请求 :http://localhost:9200/person/_doc/1,请求体内容为:

{
	"name":"李四",
	"age":22,
	"sex":"女"
}

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

服务器响应结果如下:

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式


查看文档示例

根据主键查看文档

查看文档时,需要指明文档的唯一性标识,类似于 MySQL 中数据的主键查询。在 apifox 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/person/_doc/ 1

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

查询成功后,服务器响应结果

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

服务器响应结果解释

{
    "_index"【索引】: "person",
    "_type"【文档类型】: "_doc",
    "_id"【唯一标识】: "1", #可以类比为 MySQL 中的主键
    "_version"【版本】: 1,
    "_seq_no": 4,
    "_primary_term": 1,
    "found"【查询结果】: true,  # true 表示查找到,false 表示未查找到
    "_source"【文档源信息】: {
        "name": "李四",
        "age": 22,
        "sex": "女"
    }
}

查看所有文档

在 apifox 中,向 ES 服务器发 GET 请求 :http://localhost:9200/person/ _search

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

查询成功后,服务器响应结果

{
    "took": 0,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 5,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "person",
                "_type": "_doc",
                "_id": "QM_K5owBBLem2BEmAdux",
                "_score": 1.0,
                "_source": {
                    "name": "张三",
                    "age": 20,
                    "sex": "男"
                }
            },
            {
                "_index": "person",
                "_type": "_doc",
                "_id": "Qc8r54wBBLem2BEmnNus",
                "_score": 1.0,
                "_source": {
                    "name": "张三",
                    "age": 20,
                    "sex": "男"
                }
            },
            {
                "_index": "person",
                "_type": "_doc",
                "_id": "Qs9754wBBLem2BEm69tA",
                "_score": 1.0,
                "_source": {
                    "name": "张三",
                    "age": 20,
                    "sex": "男"
                }
            },
            {
                "_index": "person",
                "_type": "_doc",
                "_id": "Q89854wBBLem2BEmXds5",
                "_score": 1.0,
                "_source": {
                    "name": "李四",
                    "age": 22,
                    "sex": "女"
                }
            },
            {
                "_index": "person",
                "_type": "_doc",
                "_id": "1",
                "_score": 1.0,
                "_source": {
                    "name": "李四",
                    "age": 22,
                    "sex": "女"
                }
            }
        ]
    }
}

修改文档示例

全局修改文档

和新增文档一样,输入相同的 URL 地址请求,如果请求体变化,会将原有的数据内容覆盖。在 apifox 中,向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/person/_doc/1,请求体内容为:

{
    "name":"李四四",
    "age":66,
    "sex":"女"
}

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

修改成功后,服务器响应结果

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

服务器响应结果解释

{
    "_index": "person",
    "_type": "_doc",
    "_id": "1",
    "_version"【版本】: 2,
    "result"【结果】: "updated",# updated 表示数据被更新
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 5,
    "_primary_term": 1
}

局部修改文档

修改数据时,也可以只修改某一给条数据的局部信息。在 apifox 中,向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/person/_update/1,请求体内容为:

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

修改成功后,服务器响应结果

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

根据唯一性标识,查询文档数据,文档数据已经更新

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式


删除文档示例

根据文档的唯一性标识删除文档

  • 删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)。

在 apifox 中,向 ES 服务器发 DELETE 请求 :http://127.0.0.1:9200/person/ _doc/1

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

删除成功,服务器响应结果

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

服务器响应结果解释

{
    "_index": "person",
    "_type": "_doc",
    "_id": "1",
    "_version"【版本】: 4, #对数据的操作,都会更新版本
    "result"【结果】: "deleted", # deleted 表示数据被标记为删除
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 7,
    "_primary_term": 1
}

删除后再查询当前文档信息

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

如果删除一个并不存在的文档,返回结果为 not_found

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式


条件删除文档

一般删除数据都是根据文档的唯一性标识进行删除,实际操作时,也可以根据条件对多条数据进行删除。

  • 首先分别增加多条数据

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/person/ _delete_by_query ,请求体内容为:

{
    "query":{
        "match":{
            "name":"张三"
        }
    }
}

Elasticsearch基本操作之文档操作,Elastic Search,核心知识点,elasticsearch,分布式

服务器响应结果解释

{
    "took"【耗时】: 1426,
    "timed_out" 【是否超时】: false,
    "total" 【总数】: 4,
    "deleted"【删除数量】: 4,
    "batches": 1,
    "version_conflicts": 0,
    "noops": 0,
    "retries": {
        "bulk": 0,
        "search": 0
    },
    "throttled_millis": 0,
    "requests_per_second": -1.0,
    "throttled_until_millis": 0,
    "failures": []
}

本文小结

本文记录了Elasticsearch基本操作之文档操作文章来源地址https://www.toymoban.com/news/detail-789205.html

到了这里,关于Elasticsearch基本操作之文档操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【elastic search】JAVA操作elastic search

    目录 1.环境准备 2.ES JAVA API 3.Spring Boot操作ES 本文是作者ES系列的第三篇文章,关于ES的核心概念移步: https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502 关于ES的下载安装教程以及基本使用,移步: https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502 在前文

    2024年01月25日
    浏览(35)
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档

    为了方便演示,我关闭了elasticsearch的安全验证,带安全验证的初始化方式将在最后专门介绍 其中,HotelDoc是一个实体类 带安全验证的连接有点复杂,将下列代码中CA证书的位置改为实际所在的位置就行了。 password为elastic的密码,可以在我的另一篇文章中查看密码的重置方式

    2024年04月11日
    浏览(36)
  • ElasticSearch - 基本操作

    本文记录 ES 的一些基本操作,就是对官方文档的一些整理,按自己的习惯重新排版,凑合着看。官方的更详细,建议看官方的。 下文以 books 为索引名举例。 添加单个文档 (没有索引会自动创建) 不指定 id,会随机生成,如果需要指定 id,使用 POST books/_doc/id 还可以使用 put 的

    2024年03月20日
    浏览(28)
  • ElasticSearch8 - 基本操作

    本文记录 ES 的一些基本操作,就是对官方文档的一些整理,按自己的习惯重新排版,凑合着看。官方的更详细,建议看官方的。 下文以 books 为索引名举例。 添加单个文档 (没有索引会自动创建) 不指定 id,会随机生成,如果需要指定 id,使用 POST books/_doc/id 还可以使用 put 的

    2024年04月09日
    浏览(27)
  • ElasticSearch基本api操作

    本文章下列所用es本意都为Elaticsearch Elaticsearch ,简称为es, es是一 个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好, 可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索弓和搜

    2024年02月05日
    浏览(30)
  • Elasticsearch的基本操作与管理

    Elasticsearch是一个基于分布式搜索和分析引擎,由Netflix开发,后被Elasticsearch公司继承。它是一个实时、可扩展、高性能的搜索引擎,可以处理大量数据并提供快速、准确的搜索结果。Elasticsearch使用Lucene库作为底层搜索引擎,并提供RESTful API和JSON格式进行数据交互。 Elasticsea

    2024年02月20日
    浏览(24)
  • Elasticsearch(四)——ES基本操作

    一、Rest风格说明( 非常重要 ) Rest风格一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。 它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 基于Rest命令说明 method url地址 描述 PUT localh

    2024年02月02日
    浏览(27)
  • elasticsearch基本操作之--QueryBuilders

    使用QueryBuilders进行范围时间组合查询 es存储日志 是按照UTC时间格式存放,以@timestamp 作为时间范围查询条件,即from(Date1) to(Date2)Date1、Date2入参必须是标准的utc格式; 数字

    2024年02月13日
    浏览(35)
  • ElasticSearch 8.11 基本操作练习

    ES 8.0 默认把type给去掉了 新增/编辑 PUT /index/id  幂等操作 必须指定id 同一个id为修改 POST /index/id 非幂等操作 指定id时和put操作一样 不指定id 每次都会新增 id为系统随机分配 删除 DELETE /index  删除整个索引 DELETE /index/_doc/id  删除指定document  查询  GET /index/_search  不带条件查

    2024年02月04日
    浏览(28)
  • ElasticSearch Java API 基本操作

    ElasticSearch Java API是ES官方在8.x版本推出的新java api,也可以适用于7.17.x版本的es。 本文主要参考了相关博文,自己手动编写了下相关操作代码,包括更新mappings等操作的java代码。 代码示例已上传github。 elasticsearch 版本: 7.17.9 ,修改 /elasticsearch-7.17.9/config/elasticsearch.yml ,新增

    2024年02月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包