0

Elasticsearch CRUD操作を実行するために機能するelasticsearchプロキシを構築しました。次のように、プロキシ経由で head プラグインを呼び出そうとすると、次のようになります。

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

次のエラーが表示されます。

エラー: uri [/_plugin/head] とメソッド [GET] のハンドラーが見つかりません

通常のポート 9200 経由でプラグインを呼び出そうとすると、問題なく動作します。つまり、次のようになります...

http://localhost:9200/_plugin/head

リクエストが最初に渡されるelasticsearchの別のプラグインとして実行されているフィルターもあります。これは、プロキシ経由で渡されるか、elasticsearch に直接渡されるかに関係なく呼び出されます。

これまでのところ、node.js はすべての http ヘッダーを小文字に変換するため、それがヘッダーであると考えることができました。プロキシ経由で同じヘッダーを呼び出してみましたが、それでも同じエラーが発生します。悲しいかな、私はこの問題について何らかの洞察を得るためにここに来ました。どんな助けでも大歓迎です。

編集

そのため、いくつかのelasticsearchコードを掘り下げた後、elasticsearchthrift transportプラグインと関係があるようです. 実際には、起動時にコンストラクターを介して渡される残りのコントローラーを使用しています。まだ何が問題なのかわからない。

4

1 に答える 1

0

これは、elasticsearch thrift transfer プラグインの何らかのバグであることが判明しました。thrift サービス経由で Elasticsearch を呼び出すと、head プラグインが登録済みハンドラーとして認識されません。

プラグインを呼び出すときに、プロキシを介してelasticsearchに直接http呼び出しを行うことで、それを回避しました。

于 2015-01-04T20:59:57.733 に答える