栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch文档操作

elasticsearch文档操作

es文档操作
  • 1、创建文档
  • 2、更新文档
  • 3、删除文档
  • 4、查看文档

1、创建文档
POST   http://127.0.0.1:9200/students/_doc/1001

指定Id的情况下,既可以用POST请求也可以用PUT请求,在请求的Body里面添加JSON文档:

{
    "userId": 1001,
    "userName": "Nancy",
    "age": 24,
    "hobby": "游泳,羽毛球,足球"
}

返回结果为:

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

不指定Id的情况下,使用PUT请求时,会报以下错误:

{
    "error": "Incorrect HTTP method for uri [/students/_doc] and method [PUT], allowed: [POST]",
    "status": 405
}
2、更新文档

更新文档有两种方式,一种是全量所有字段进行覆盖更新,另一种是指定需要修改的字段进行更新:

  • 全量所有字段覆盖更新
PUT   http://127.0.0.1:9200/students/_doc/1001

将Nancy的兴趣爱好hobby字段,删掉足球的爱好,在请求的Body里面添加JSON文档:

{
    "userId": 1001,
    "userName": "Nancy",
    "age": 24,
    "hobby": "游泳,羽毛球"
}

返回结果为:

{
    "_index": "students",
    "_type": "_doc",
    "_id": "1001",
    "_version": 2,
    "result": "updated",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 1,
    "_primary_term": 1
}
  • 增量只更新需要修改的字段
POST   http://127.0.0.1:9200/students/_update/1001

请求的Body里的内容为:

{
	"doc": {
		"hobby": "游泳,羽毛球",
		"age": 25
	}
}

_upadte表示请求的操作为更新,后面跟的为文档的id,即可完成对应的字段更新。

3、删除文档

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

  • 不带条件,根据id来删除
DELETE   http://127.0.0.1:9200/students/_doc/1001

返回结果为:

{
    "_index": "students",
    "_type": "_doc",
    "_id": "1001",
    "_version": 6,
    "result": "deleted",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 5,
    "_primary_term": 1
}

若对一个不存在的文档进行删除,在返回结果的result字段会显示not_found,表示文档未查找到。

{
    "_index": "students",
    "_type": "_doc",
    "_id": "1008",
    "_version": 1,
    "result": "not_found",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 11,
    "_primary_term": 2
}
  • 带条件,根据条件来删除
POST  http://127.0.0.1:9200/students/_delete_by_query

请求体:

{
    "query": {
        "match": {
            "age": 24
        }
    }
}

返回结果:

{
    "took": 180,
    "timed_out": false,
    "total": 2,
    "deleted": 2,
    "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": []
}
4、查看文档

查看文档时候,需要指明文档的唯一表示,类似于数据库的唯一主键。

GET   http://127.0.0.1:9200/students/_doc/1002

返回结果:

{
    "_index": "students",
    "_type": "_doc",
    "_id": "1002",
    "_version": 1,
    "_seq_no": 10,
    "_primary_term": 2,
    "found": true,
    "_source": {
        "userId": 1002,
        "userName": "Tom",
        "age": 24,
        "hobby": "游泳,足球"
    }
}

查看一个已被删除或者不存在的文档时,在返回结果的found字段会用false表示未找到。

{
    "_index": "students",
    "_type": "_doc",
    "_id": "1008",
    "found": false
}

查询一个索引下的所有文档:

GET    http://127.0.0.1:9200/students/_search

返回结果:

{
    "took": 4,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "students",
                "_type": "_doc",
                "_id": "1002",
                "_score": 1.0,
                "_source": {
                    "userId": 1002,
                    "userName": "Tom",
                    "age": 24,
                    "hobby": "游泳,足球"
                }
            }
        ]
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/342792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号