0

我已经构建了一个用于执行弹性搜索 CRUD 操作的弹性搜索代理。似乎当我尝试使用以下代理通过代理调用头插件时。

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

我收到以下错误。

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

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

http://localhost:9200/_plugin/head

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

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

编辑

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

4

1 回答 1

0

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

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

于 2015-01-04T20:59:57.733 回答