gpt4 book ai didi

elasticsearch - 找不到 uri [//<​​type>/] 和方法 [PUT] 的处理程序

转载 作者:行者123 更新时间:2023-11-29 02:43:42 25 4
gpt4 key购买 nike

我正在尝试使用插入文档 API 的自动递增 ID 功能向我的 elasticsearch 索引发出原始 NodeJS http 请求。

所以这适用于 curl:

curl -XPOST http://host:3333/catalog/products -d '{ "hello": "world"}'

但是当我通过这个在 nodejs 中尝试同样的操作时:

var http = require('http');

var options = {
protocol: 'http:',
mehtod: 'PUT',
hostname: 'host',
port: 3333,
path: '/catalog/products/'
}

http.request(options, ...);

它返回这个错误:

找不到 uri [/catalog/products/] 和方法 [PUT] 的处理程序

但是,如果我将 id 添加到该路径的末尾,它将起作用。这里有什么问题吗?

最佳答案

这里的问题是 POSTPUT 的工作方式,当你使用 POST 时,_id 是可选的, ES每次都会为你生成一个唯一的_id

这里您使用的是 PUT,所以 _id必需的,ES 将使用该 id 创建一个新文档或更新该文档使用该 ID(如果存在)。你可以阅读more关于这个。

如果您不想指定 id,请像使用 curl 一样尝试使用 POST 请求建立索引

var options = {
protocol: 'http:',
hostname: 'host',
port: 3333,
path: '/catalog/products/',
method: 'POST' <--- specify method
}

希望这对您有所帮助!

关于elasticsearch - 找不到 uri [/<index>/<​​type>/] 和方法 [PUT] 的处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com