【问题标题】:Elasticsearch Incorrect http method for uri for POSTElasticsearch 用于 POST 的 uri 的 http 方法不正确
【发布时间】:2021-11-28 22:23:29
【问题描述】:

我正在尝试将文档发布到我通过弹性云托管的弹性搜索集群。我有一个当前从 TheThingsNetwork 运行的应用程序,它可以正常发布数据,但是当我尝试使用邮递员或 python 请求模块时,我在发布时收到 405 错误。 GET 请求工作正常并返回 200 状态。

这是我通过邮递员失败的 POST:

这是我通过邮递员成功获取的:

这应该是非常简单的事情,所以我想我缺少简单的东西。非常感谢任何和所有帮助!

【问题讨论】:

    标签: http elasticsearch post get postman


    【解决方案1】:

    这是因为您正在尝试 POST 到索引。将文档类型添加到您的网址 ex 的末尾。 /my_index/my_doc 并且您应该能够将您的文档作为 my_doc 文档类型发布。

    【讨论】:

      【解决方案2】:

      对于任何来此答案寻找解决方案的人,Elastic search 已更改,现在不支持索引类型,因为ES6and 以上您需要做的是

      POST -> https://youripOrDomain:9200/your_index_name/_doc/your_id

      如果您将 your_id 留空,它将为您创建一个,因此它是可选的

      【讨论】:

        【解决方案3】:

        @atorres757 和@atorres757 的答案是正确的。

        有一天,我尝试试用 Elasticsearch 官网提供的免费试用。当我应该使用以下查询创建索引时。

        POST /users
        { "first_name": "Rishikesh", "last_name": "Agrawani", "age": 29}
        

        我在 Kibana DevTools 控制台上得到以下结果。

        {
            "error" : "Incorrect HTTP method for uri [/users?pretty=true] and method [POST], allowed: [GET, DELETE, PUT, HEAD]",
            "status" : 405
        }
        

        最后,我通过将/_doc 附加到前一个端点来尝试以下查询。

        POST /users/_doc
        { "first_name": "Rishikesh", "last_name": "Agrawani", "age": 29}
        

        给出以下结果(成功)。

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

        最后,我们可以使用下面的查询来验证插入。

        GET /users/_doc/tHTmZn0BRhCCQAKysEr1
        

        给出以下结果。

        {
          "_index" : "users",
          "_type" : "_doc",
          "_id" : "tHTmZn0BRhCCQAKysEr1",
          "_version" : 1,
          "_seq_no" : 1,
          "_primary_term" : 1,
          "found" : true,
          "_source" : {
            "first_name" : "Rishikesh",
            "last_name" : "Agrawani",
            "age" : 29
          }
        }
        

        谢谢。我没有尝试任何特殊的,只是通过使用可用的答案添加了工作示例,以使解决方案更清晰。

        【讨论】:

          猜你喜欢
          • 2018-05-14
          • 2017-07-03
          • 2019-01-07
          • 2018-01-12
          • 1970-01-01
          • 2014-02-21
          • 1970-01-01
          • 1970-01-01
          • 2019-10-02
          相关资源
          最近更新 更多