Node-RedからElasticsearchのデータを取得する場合に
少し煩わしい点があったため備忘録として紹介します。
Node-Redに限らず、
Elasticsearchにデータ投入する場合はPostメソッドを使用します。
Elasticsearchに投入したデータを検索して取得する場合は
CurlコマンドやKibanaのコンソール画面からはGetメソッドですが...
公式のElasticsearhの検索APIの説明でもGETメソッドを使用しています。
一方、Node-Redから検索APIを使用する場合は
Getメソッドでは取得できませんでした。
Getメソッドを使用するとmatch_allコマンド同様の結果となり、
意図した検索がされず、投入データすべてがhitとなってしまいます。
Node-Red本家のIBMのサイトで検索APIをNode-Redから使用する際の方法について説明がありました。
「複数の検索条件を指定する場合はメソッドがPOST」を使用する
直観的にはGetメソッドですが、
Node-Redからの場合はPostメソッドの使用するのがポイントのようです。
実際にPostメソッドで検索APIを使用すると
意図した検索範囲の結果を返してきました。
同様にPostメソッドを使用します。
CurlコマンドやKibanaのコンソール画面ではGetメソッドで取得できるにも関わらず、
Node-Redからは取得できないため、Wiresharkで小一時間色々試行錯誤してしまいました。