Elasticsearch Head插件通过代理和过滤器

时间:2015-01-02 13:18:49

标签: http proxy elasticsearch elasticsearch-plugin

我已经构建了一个弹性搜索代理,用于执行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传输插件有关。实际上,它正在使用在启动时通过构造函数传入的其余控制器。仍然不确定是什么问题。

1 个答案:

答案 0 :(得分:0)

原来是弹性搜索节约转移插件的某种错误。如果通过thrift服务调用elasticsearch,则它不会将head plugin识别为已注册的处理程序。

通过在调用插件时通过代理直接对elasticsearch进行http调用,我已经解决了这个问题。