• elasticsearch _create api创建一个不存在的文档


    https://www.elastic.co/guide/cn/elasticsearch/guide/current/create-doc.html
    当我们索引一个文档, 怎么确认我们正在创建一个完全新的文档,而不是覆盖现有的呢?
    请记住, _index 、 _type 和 _id 的组合可以唯一标识一个文档。所以,确保创建一个新文档的最简单办法是,使用索引请求的 POST 形式让 Elasticsearch 自动生成唯一 _id :
    POST /website/blog/
    { ... }
    然而,如果已经有自己的 _id ,那么我们必须告诉 Elasticsearch ,只有在相同的 _index 、 _type 和 _id 不存在时才接受我们的索引请求。这里有两种方式,他们做的实际是相同的事情。使用哪种,取决于哪种使用起来更方便。
    第一种方法使用 op_type 查询 -字符串参数:
    PUT /website/blog/123?op_type=create
    { ... }
    第二种方法是在 URL 末端使用 /_create :
    PUT /website/blog/123/_create
    { ... }
    如果创建新文档的请求成功执行,Elasticsearch 会返回元数据和一个 201 Created 的 HTTP 响应码。
    另一方面,如果具有相同的 _index 、 _type 和 _id 的文档已经存在,Elasticsearch 将会返回 409 Conflict 响应码,以及如下的错误信息:

    {
       "error": {
          "root_cause": [
             {
                "type": "document_already_exists_exception",
                "reason": "[blog][123]: document already exists",
                "shard": "0",
                "index": "website"
             }
          ],
          "type": "document_already_exists_exception",
          "reason": "[blog][123]: document already exists",
          "shard": "0",
          "index": "website"
       },
       "status": 409
    }
  • 相关阅读:
    MySQL之事务
    Java岗 面试考点精讲(基础篇02期)
    Java岗 面试考点精讲(基础篇01期)
    Tomcat热部署
    如何连接局域网的数据库
    Mybatis逆向工程中的 mybatis-generator:generate 代码生成器的使用
    如何把转入成功的XXX.sql导入到自己的数据库里
    JSP知识总结
    Servlet
    Spring学习
  • 原文地址:https://www.cnblogs.com/gavinYang/p/11199808.html
Copyright © 2020-2023  润新知