Elasticsearch-rails で接続先情報を設定する方法

Published: 2021/12/18


elasticsearch-rails の gemを使った際に、どうやって接続先情報を設定すれば良いのか自明ではなかったので、その方法について。

この gem は、内部的には elastic-transport-ruby にて定義される Client オブジェクトを利用して通信を行う。

この Client オブジェクトは、下記 url にある通り、特に明示的に接続先をプログラム上で指定しなければ、 ELASTICSEARCH_URL の環境変数の値を利用して接続先を決定する。

https://github.com/elastic/elastic-transport-ruby/blob/1dcb6c9db68dba70958e99d50e35a577d7d7f628/lib/elastic/transport/client.rb#L139-L144

なので、 elasticsearch-rails においても、 ELASTICSEARCH_URL にて接続先ホストの URL を指定すれば良い。

なお、 X-Pack のセキュリティ機能を enable している場合においては、認証情報を API 通信に含める必要があるが、これは Basic 認証を行えば良く、その認証についての情報は url に https://user:pass@localhost:9200 などのようにして含めることができるので、その場合においても、やはり ELASTICSEARCH_URL 環境変数を適切に設定することで、接続が可能になる。


Tags: elasticsearchrails
Next: PostgreSQL の Incremental Sorting について
Prev: Nginx の log_format を変更したけれども反映されずハマった話