我已经构建了一个弹性搜索代理,用于执行elasticsearch CRUD操作。似乎当我尝试通过代理使用以下代码调用head插件时。
http://localhost:8124/_plugin/head/
我收到以下错误。
错误:找不到uri [/ _plugin / head]和方法[GET]
的处理程序当我尝试通过常规端口9200调用插件时,它没有任何问题,即以下内容......
http://localhost:9200/_plugin/head
还有一个过滤器作为elasticsearch上的另一个插件运行,请求首先传递给它。无论是通过代理传递还是直接传递给elasticsearch,都会调用此方法。
到目前为止我唯一可以想到的是它是标题,因为node.js会将所有http标题转换为小写。我尝试通过代理调用相同的标题,但我仍然得到相同的错误。唉,我来这儿是为了解决这个问题。任何帮助是极大的赞赏。
修改
因此,在深入研究一些elasticsearch代码之后,似乎它与elasticsearch thrift传输插件有关。实际上,它正在使用在启动时通过构造函数传入的其余控制器。仍然不确定是什么问题。
答案 0 :(得分:0)
原来是弹性搜索节约转移插件的某种错误。如果通过thrift服务调用elasticsearch,则它不会将head plugin识别为已注册的处理程序。
通过在调用插件时通过代理直接对elasticsearch进行http调用,我已经解决了这个问题。