专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

ES实战五、全文检索-ElasticSearch-入门-put&post新增数据

接第4节

2、索引一个文档(对应成Mysql就是保存一条记录)

保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识PUT customer/external/1; 在 customer 索引下的 external 类型下保存 1 号数据为

PUT customer/external/1
{
“name”:”lohn Doe”
}
PUTPOST 都可以;
POST 新增。如果不指定id,会自动生成 id。指定 id 就会修改这个数据,并新增版本号;
PUT 可以新增也可以修改。PUT 必须指定 id;由于 PUT 需要指定 id,我们一般都用来做修改;

在 postman 地址栏中输入 http://192.168.56.10:9200/customer/external/1,使用 put 方法,输入参数体:

{
"name":"lohn Doe"
}

可以看到创建记录成功:

75_1.png

再一次发送请求后得到如下结果:

{
    "_index": "customer",
    "_type": "external",
    "_id": "1",
    "_version": 2, //注意版本号
    "result": "updated",//注意结果是 update
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 1, //注意序列号
    "_primary_term": 1
}

所以 put 方法既可以用来新增,也可以用来更新。

在 postman 中使用 post 方法发送 http://192.168.56.10:9200/customer/external/ 请求,注意没有带 id,使用的还是上面 put 方法中的参数, 可以看到创建记录成功,es 帮我们生成了一个id:

75_2.png当我们使用这个 id 再一次发送 post 请求时,就会变成更新操作: 75_3.png所以 post 方法不带 id 时是新增,带 id 不存在时也是新增,带 id 且数据存在时是更新操作。

那么问题来了,put 和 post 方法有啥区别呢?如果使用 put 方法不带 id 发送请求行不行?

75_4.png可以看到使用 put 方法不带 id 请求会报错,也就是说 put 是不允许不带 id 请求的,而 post 是允许的。


参考: Elasticsearch Reference elastic 全文搜索引擎 Elasticsearch 入门教程

文章永久链接:https://tech.souyunku.com/37529

未经允许不得转载:搜云库技术团队 » ES实战五、全文检索-ElasticSearch-入门-put&post新增数据

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们