Как сделать ElasticSearch Client доступным для всего приложения?
Я использую elasticsearch_ruby
в приложении Rails. Я решил не использовать elasticsearch_rails
потому что я не хочу такой тесной интеграции с моими объектами ActiveRecord.
С помощью elasticsearch_ruby
а также elasticsearch_transport
, новый клиент создается так:
client = ElasticSearch::Client.new(log:true)
Как сделать это приложение доступным для клиента? Я хочу создать экземпляр только один раз, а затем использовать его во всем приложении.
Какова лучшая практика для этого?
Кажется, что-то очевидно, что я скучаю.
1 ответ
Решение
Используйте инициализатор
1. Создайте файл под configuration/initializer/elasticsearch.rb
2. Инициализируйте своего клиента как $elasticsearch_client=ElasticSearch::Client.new(log:true)
3. Используйте это $elasticsearch_client
в любом месте вашего приложения рельсы