美文网首页学习
【ES从入门到实战】五、全文检索-ElasticSearch-入

【ES从入门到实战】五、全文检索-ElasticSearch-入

作者: runewbie | 来源:发表于2020-05-23 18:52 被阅读0次

    接第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"
    }
    

    可以看到创建记录成功:


    在这里插入图片描述

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

    {
        "_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:

    在这里插入图片描述
    当我们使用这个 id 再一次发送 post 请求时,就会变成更新操作:
    在这里插入图片描述
    所以 post 方法不带 id 时是新增,带 id 不存在时也是新增,带 id 且数据存在时是更新操作。

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


    在这里插入图片描述

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


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

    相关文章

      网友评论

        本文标题:【ES从入门到实战】五、全文检索-ElasticSearch-入

        本文链接:https://www.haomeiwen.com/subject/gcmlahtx.html