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

Elasticsearch Head Plugin Via Proxy And Filter

我构建了一个 elasticsearch 代理,用于执行 elasticsearch CRUD 操作。似乎当我尝试使用以下代理通过代理调用 head 插件时。

http://localhost:8124/_plugin/head/

我收到以下错误。

错误:找不到 uri [/_plugin/head] 和方法 [GET] 的处理程序

当我尝试通过常规端口 9200 调用插件时,它可以正常工作,如下所示...

http://localhost:9200/_plugin/head

还有一个过滤器运行作为elasticsearch上的另一个插件,请求首先传递给它。无论是通过代理传递还是直接传递给 elasticsearch,都会调用它。

到目前为止我唯一能想到的是 headers,因为 node.js 会将所有 http headers 转换为小写。我已经尝试通过代理使用相同的 headers 进行调用,但仍然出现相同的错误。 las,我来这里是为了对这个问题有一些可能的了解。任何帮助是极大的赞赏。

编辑

所以在深入研究了一些 elasticsearch 代码之后,它似乎与 elasticsearch thrift transport 插件有关。实际上,它使用的是在启动时通过构造函数传入的其余控制器。仍然不确定是什么问题。

原来是 elasticsearch thrift transfer 插件的某种错误。如果您通过 thrift 服务调用 elasticsearch,那么它不会将 head 插件识别为已注册的处理程序。

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