Elasticsearch-rails で接続先情報を設定する方法
Published: 2021/12/18
elasticsearch-rails
の gemを使った際に、どうやって接続先情報を設定すれば良いのか自明ではなかったので、その方法について。
この gem は、内部的には elastic-transport-ruby
にて定義される Client
オブジェクトを利用して通信を行う。
この Client
オブジェクトは、下記 url にある通り、特に明示的に接続先をプログラム上で指定しなければ、 ELASTICSEARCH_URL
の環境変数の値を利用して接続先を決定する。
elastic-transport-ruby/client.rb at 1dcb6c9db68dba70958e99d50e35a577d7d7f628 · elastic/elastic-transport-ruby
Transport classes and utilities shared among Ruby Elastic client libraries - elastic-transport-ruby/client.rb at 1dcb6c9db68dba70958e99d50e35a577d7d7f628 · elastic/elastic-transport-ruby
github.com
なので、 elasticsearch-rails
においても、 ELASTICSEARCH_URL
にて接続先ホストの URL を指定すれば良い。
なお、 X-Pack のセキュリティ機能を enable している場合においては、認証情報を API 通信に含める必要があるが、これは Basic 認証を行えば良く、その認証についての情報は url に https://user:pass@localhost:9200
などのようにして含めることができるので、その場合においても、やはり ELASTICSEARCH_URL
環境変数を適切に設定することで、接続が可能になる。
サマリー in Q&A
Q. elasticsearch-rails の gem にて接続先情報を localhost:9200 以外に設定する方法は?
Q. X-Pack のセキュリティがある状態で ELASTICSEARCH_URL を指定するには?
Tags: elasticsearchrails
関連記事
Elasticsearch で join フィールドの値でフィルタする方法
2022/1/10
Elasticsearch のサーバー上でクエリログを出力する方法
2021/12/15